Поделиться через


sys.sysindexes (Transact-SQL)

Область применения: SQL Server

Содержит по одной строке для каждого индекса и таблицы в текущей базе данных. XML-индексы в этом представлении не поддерживаются, Секционированные таблицы и индексы не полностью поддерживаются в этом представлении; вместо этого используйте представление каталога sys.indexes .

Внимание

Эта системная таблица SQL Server 2000 включена в СУБД как представление для обеспечения обратной совместимости. Вместо нее рекомендуется использовать системные представления SQL Server. Чтобы найти эквивалентное системное представление или представления, см. статью "Сопоставление системных таблиц с системными представлениями" (Transact-SQL). В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Имя столбца Тип данных Description
id int Идентификатор таблицы, которой принадлежит данный индекс.
состояние int Сведения о состоянии системы.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
first binary(6) Указатель на первую или корневую страницу.

Неиспользуется при indid = 0.

NULL = индекс секционируется при indid> 1.

NULL = таблица секционируется при значении indid 0 или 1.
indid smallint Идентификатор индекса:

0 = куча;

1 = кластеризованный индекс;

>1 = некластеризованный индекс
root binary(6) Для indid>= 1 корень — это указатель на корневую страницу.

Неиспользуется при indid = 0.

NULL = индекс секционируется при indid> 1.

NULL = таблица секционируется при значении indid 0 или 1.
minlen smallint Минимальный размер строки.
keycnt smallint Количество ключей.
groupid smallint Идентификатор файловой группы, в которой был создан объект.

NULL = индекс секционируется при indid> 1.

NULL = таблица секционируется при значении indid 0 или 1.
dpages int Для indid = 0 или indid = 1, dpages — это количество используемых страниц данных.

Для indid> 1 dpages — это количество используемых страниц индекса.

0 = индекс секционируется при индиде> 1.

0 = таблица секционируется, если идентификатор имеет значение 0 или 1.

Не дает точных результатов при возникновении переполнения строки.
скрытный int Для indid = 0 или indid = 1 зарезервировано количество страниц, выделенных для всех индексов и табличных данных.

Для indid> 1 зарезервировано количество страниц, выделенных для индекса.

0 = индекс секционируется при индиде> 1.

0 = таблица секционируется, если идентификатор имеет значение 0 или 1.

Не дает точных результатов при возникновении переполнения строки.
использованный int Для indid = 0 или indid = 1 используется количество общих страниц, используемых для всех данных индекса и таблицы.

Для indid> 1 используется количество страниц, используемых для индекса.

0 = индекс секционируется при индиде> 1.

0 = таблица секционируется, если идентификатор имеет значение 0 или 1.

Не дает точных результатов при возникновении переполнения строки.
rowcnt bigint Число строк уровня данных на основе indid = 0 и indid = 1.

0 = индекс секционируется при индиде> 1.

0 = таблица секционируется, если идентификатор имеет значение 0 или 1.
rowmodctr int Подсчитывает общее количество вставленных, удаленных или обновленных строк, начиная с момента последнего обновления статистики для таблицы.

0 = индекс секционируется при индиде> 1.

0 = таблица секционируется, если идентификатор имеет значение 0 или 1.

В SQL Server 2005 (9.x) и более поздних версиях rowmodctr не полностью совместим с более ранними версиями. Дополнительные сведения см. в подразделе "Примечания".
зарезервировано3 int Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
reserved4 int Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
xmaxlen smallint Максимальный размер строки.
maxirow smallint Максимальный размер неконечных индексных строк.

В SQL Server 2005 (9.x) и более поздних версиях maxirow не полностью совместим с более ранними версиями.
OrigFillFactor tinyint Оригинальное значение коэффициента заполнения, используемого при создании индекса. Это значение не поддерживается. Однако оно может быть полезным при повторном создании индекса, если забыто значение используемого коэффициента заполнения.
StatVersion tinyint Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
reserved2 int Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
FirstIAM binary(6) NULL = индекс секционирован.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
impid smallint Флаг реализации индекса.

Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
блокировки smallint Используется для ограничения рассматриваемой гранулярности блокировки для индекса. Например, для минимизации стоимости блокировки уровень блокировки таблицы подстановки, находящейся в режиме только для чтения, может быть установлен только на уровне таблицы.
pgmodctr int Возвращает 0.

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
keys varbinary(816) Список идентификаторов столбцов, составляющих ключ индекса.

Возвращает значение NULL.

Чтобы отобразить ключевые столбцы индекса, используйте sys.sysindexkeys.
name sysname Имя индекса или статистики. Возвращает значение NULL, когда indid = 0. Измените приложение, чтобы оно выполняло поиск кучи с именем NULL.
statblob Изображение Статистический большой двоичный объект (BLOB).

Возвращает значение NULL.
maxlen int Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
rows int Число строк уровня данных на основе indid = 0 и indid = 1, а значение повторяется для indid>1.

Замечания

Столбцы, определенные как зарезервированные, не должны использоваться.

Столбцы dpages, зарезервированные и используемые не возвращают точные результаты, если таблица или индекс содержат данные в единице выделения ROW_OVERFLOW. Кроме того, счетчики страниц для каждого индекса отслеживаются отдельно и не суммируются для базовой таблицы. Чтобы просмотреть количество страниц, используйте представления каталога sys.allocation_units или sys.partitions или динамическое представление управления sys.dm_db_partition_stats.

В SQL Server 2000 и более ранних версий ядро СУБД поддерживаются счетчики изменений на уровне строк. Теперь эти счетчики поддерживаются на уровне столбца. Поэтому столбец rowmodctr вычисляется и выдает результаты, аналогичные результатам в более ранних версиях, но не точны.

Если вы используете значение в rowmodctr для определения времени обновления статистики, рассмотрите следующие решения:

  • Никакие действия не выполняются. Новое значение rowmodctr часто помогает определить, когда обновлять статистику, так как поведение достаточно близко к результатам более ранних версий.

  • Использовать параметр AUTO_UPDATE_STATISTICS. Дополнительные сведения см. в разделе "Статистика".

  • Использовать временное ограничение для определения времени обновления статистики. Например, каждый час, каждый день или каждую неделю.

  • Использовать данные уровня приложения для определения времени обновления статистики. Например, каждый раз, когда максимальное значение столбца удостоверений изменяется более чем на 10 000, или каждый раз при выполнении операции массового вставки.

См. также

Представления каталога (Transact-SQL)
Сопоставление системных таблиц с системными представлениями (Transact-SQL)
sys.indexes (Transact-SQL)