sys.indexes (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Содержит строку для каждого индекса или кучи табличного объекта, такого как таблица, представление или функция с табличным значением.
Имя столбца | Тип данных | Description |
---|---|---|
object_id | int | Идентификатор объекта, которому принадлежит данный индекс. |
name | sysname | Имя индекса. name является уникальным только в объекте.NULL = куча. |
index_id | int | Идентификатор индекса. index_id является уникальным только в объекте.0 = куча; 1 = кластеризованный индекс; > 1 = некластеризованный индекс |
type | tinyint | Тип индекса: 0 = куча; 1 = кластеризованное хранилище строк (B-дерево) 2 = некластеризованное хранилище строк (B-tree) 3 = XML. 4 = пространственный. 5 = кластеризованный индекс columnstore. Область применения: SQL Server 2014 (12.x) и более поздних версий. 6 = некластеризованный индекс columnstore. Область применения: SQL Server 2012 (11.x) и более поздних версий. 7 = некластеризованный хэш-индекс. Область применения: SQL Server 2014 (12.x) и более поздних версий. |
type_desc | nvarchar(60) | Описание типа индекса. КУЧА CLUSTERED NONCLUSTERED XML SPATIAL CLUSTERED COLUMNSTORE — применяется к: SQL Server 2014 (12.x) и более поздним версиям. NONCLUSTERED COLUMNSTORE — применимо к SQL Server 2012 (11.x) и более поздним версиям. НЕКЛАСТЕРИЗОВАННЫЕ ХЭШ: неКЛАСТЕРИЗОВАННЫЕ ХЭШ-индексы поддерживаются только в таблицах, оптимизированных для памяти. В sys.hash_indexes представлении отображаются текущие хэш-индексы и хэш-свойства. Дополнительные сведения см. в разделе sys.hash_indexes (Transact-SQL). Область применения: SQL Server 2014 (12.x) и более поздних версий. |
is_unique | bit | 1 = индекс уникален. 0 = индекс не уникален. Всегда равен 0 для кластеризованных индексов columnstore. |
data_space_id | int | Идентификатор пространства данных этого индекса. Пространством данных может быть или файловая группа, или схема секционирования. 0 = object_id это табличное значение функции или индекс в памяти. |
ignore_dup_key | bit | 1 = параметр IGNORE_DUP_KEY имеет значение ON. 0 = параметр IGNORE_DUP_KEY имеет значение OFF. |
is_primary_key | bit | 1 = индекс является частью ограничения PRIMARY KEY. Всегда равен 0 для кластеризованных индексов columnstore. |
is_unique_constraint | bit | 1 = индекс является частью ограничения UNIQUE. Всегда равен 0 для кластеризованных индексов columnstore. |
fill_factor | tinyint | > 0 = процент FILLFACTOR, используемый при создании или перестроении индекса. 0 = значение по умолчанию. Всегда равен 0 для кластеризованных индексов columnstore. |
is_padded | bit | 1 = параметр PADINDEX имеет значение ON. 0 = параметр PADINDEX имеет значение OFF. Всегда равен 0 для кластеризованных индексов columnstore. |
is_disabled | bit | 1 = индекс отключен. 0 = индекс не отключен. |
is_hypothetical | bit | 1 = индекс является гипотетическим и не может быть использован непосредственно как путь доступа к данным. Гипотетические индексы содержат статистику уровня столбцов. 0 = индекс не является гипотетическим. |
allow_row_locks | bit | 1 = индекс допускает блокировки строк. 0 = индекс не допускает блокировки строк. Всегда равен 0 для кластеризованных индексов columnstore. |
allow_page_locks | bit | 1 = индекс допускает блокировки страниц. 0 = индекс не допускает блокировки страниц. Всегда равен 0 для кластеризованных индексов columnstore. |
has_filter | bit | 1 = индекс с фильтром; содержит строки, удовлетворяющие определению фильтра. 0 = индекс без фильтра. |
filter_definition | nvarchar(max) | Выражение для подмножества строк, включенного в фильтруемый индекс. NULL для кучи, нефильтрованного индекса или недостаточно разрешений для таблицы. |
compression_delay | int | > 0 = задержка сжатия индекса columnstore, указанная в минутах. NULL = задержка сжатия строк группы строк columnstore управляется автоматически. |
suppress_dup_key_messages | bit | 1 = индекс настроен для подавления повторяющихся ключевых сообщений во время операции перестроения индекса. 0 = индекс не настроен для подавления повторяющихся ключевых сообщений во время операции перестроения индекса. Область применения: SQL Server (начиная с SQL Server 2017 (14.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure |
auto_created | bit | 1 = индекс был создан автоматической настройкой. 0 = индекс был создан пользователем. Область применения: База данных SQL Azure |
optimize_for_sequential_key | bit | 1 = индекс включена оптимизация вставки последней страницы. 0 = значение по умолчанию. Индекс отключил оптимизацию вставки последней страницы. Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure |
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
В следующем примере возвращаются все индексы таблицы Production.Product
в базе данных AdventureWorks2022.
SELECT i.name AS index_name
,i.type_desc
,is_unique
,ds.type_desc AS filegroup_or_partition_scheme
,ds.name AS filegroup_or_partition_scheme_name
,ignore_dup_key
,is_primary_key
,is_unique_constraint
,fill_factor
,is_padded
,is_disabled
,allow_row_locks
,allow_page_locks
FROM sys.indexes AS i
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id
WHERE is_hypothetical = 0 AND i.index_id <> 0
AND i.object_id = OBJECT_ID('Production.Product');
GO
Следующие шаги
Представления каталога объектов (Transact-SQL)
Представления каталога (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL)
Часто задаваемые вопросы о запросах к системному каталогу SQL Server
In-Memory OLTP (оптимизация в памяти)