sys.indexes (Transact-SQL)

Применимо к: SQL Server (все поддерживаемые версии) Azure SQL database Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics Platform System (PDW)

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

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

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

0 = куча;

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

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

0 = куча;

1 = кластеризованное хранилище строк (B-дерево)

2 = некластеризованное хранилище строк (B-дерево)

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) и более поздним версиям.

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

NONCLUSTERED HASH: некластеризованные хэш-индексы поддерживаются только в таблицах, оптимизированных для памяти. В 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)), базы данных Azure SQL и Управляемый экземпляр SQL Azure
auto_created bit 1 = индекс был создан с помощью автоматической настройки.

0 = индекс был создан пользователем.

Область применения: База данных SQL Azure.
optimize_for_sequential_key bit 1 = в индекс включена оптимизация вставки последней страницы.

0 = значение по умолчанию. В индексе отключена оптимизация вставки последней страницы.

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), базы данных Azure SQL и Управляемый экземпляр SQL Azure

Разрешения

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

В следующем примере возвращаются все индексы таблицы Production.Product в базе данных AdventureWorks2019.

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 (оптимизация в памяти)