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


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