Поделиться через


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