sys.indexes (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL Azure Synapse Analytics Analytics Platform System (PDW) в Microsoft Fabric
Содержит строку для каждого индекса или кучи табличного объекта, такого как таблица, представление или функция с табличным значением.
Имя столбца | Тип данных | 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 (оптимизация в памяти)