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


sys.indexes (Transact-SQL)

Относится к:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsСистема аналитической платформы (PDW)SQL база данных в Microsoft Fabric

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

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

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

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

0 = куча;
1 = кластеризованное хранилище строк (B-дерево)
2 = некластеризованное хранилище строк (B-tree)
3 = XML.
4 = пространственный.
5 = кластеризованный индекс columnstore 2
6 = некластеризованный индекс columnstore 1
7 = некластеризованный хэш-индекс 2
9 = JSON 5
type_desc nvarchar(60) Описание типа индекса.

-КУЧА
-КЛАСТЕРНЫЙ
- НЕКЛАСТЕРИЗОВАННЫЙ
— XML
-ПРОСТРАНСТВЕННЫЙ
— CLUSTERED COLUMNSTORE 2
— NONCLUSTERED COLUMNSTORE 1
- НЕКЛАСТЕРИЗОВАННЫЙ ХЭШ 2, 8
— JSON 5
is_unique bit 1 = индекс уникален.
0 = индекс не является уникальным.

Всегда равен 0 для кластеризованных индексов columnstore.
data_space_id int Идентификатор пространства данных этого индекса. Пространством данных может быть или файловая группа, или схема секционирования.

0 = object_id — это табличная функция или индекс в памяти.
ignore_dup_key bit 1 = IGNORE_DUP_KEY ВКЛЮЧЕНО.
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 включен.
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 3, 6, 7 bit 1 = индекс настроен для подавления повторяющихся ключевых сообщений во время операции перестроения индекса.

0 = индекс не настроен для подавления повторяющихся ключевых сообщений во время операции перестроения индекса.
auto_created 6 bit 1 = индекс был создан автоматической настройкой.
0 = индекс был создан пользователем.
optimize_for_sequential_key 4, 6, 7 bit 1 = индекс включена оптимизация вставки последней страницы.
0 = значение по умолчанию. Индекс отключил оптимизацию вставки последней страницы.

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

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

3Применимо к: SQL Server 2017 (14.x) и более поздним версиям.

4Применимо к: SQL Server 2019 (15.x) и более поздним версиям.

5Применимо к: SQL Server 2025 (17.x) и более поздним версиям.

6Применимо к: Базе данных SQL Azure.

7применяется к управляемому экземпляру SQL Azure.

8NONCLUSTERED HASH индексов поддерживаются только в таблицах, оптимизированных для памяти. В sys.hash_indexes представлении отображаются текущие хэш-индексы и хэш-свойства. Дополнительные сведения см. в sys.hash_indexes.

Permissions

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

Examples

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

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