sys.indexes (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Содержит строку для каждого индекса или кучи табличного объекта, такого как таблица, представление или функция с табличным значением.

Имя столбца Тип данных Описание
object_id int Идентификатор объекта, которому принадлежит данный индекс.
name sysname Имя индекса. имя уникально только в пределах объекта.

NULL = куча.
index_id int Идентификатор индекса. index_id уникален только в пределах объекта.

0 = куча;

1 или 5 = кластеризованный индекс (дерево B, columnstore)

> 1 и <> 5 = некластеризованный индекс
type tinyint Тип индекса:

0 = куча;

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

2 = некластеризованный.

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) Описание типа индекса.

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERed COLUMNSTORE — применяется к: SQL Server 2014 (12.x) и более поздним версиям.

Некластеризованный 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 в AdventureWorks2012 базе данных.

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 вопросы и ответы
Выполняющаяся в памяти OLTP (оптимизация в памяти)