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)