sys.indexes (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор объекта, которому принадлежит данный индекс.

name

sysname

Имя индекса. Значение name уникально только в пределах объекта.

NULL = куча.

index_id

int

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

0 = куча.

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

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

тип

tinyint

Тип индекса:

0 = куча

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

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

3 = XML.

4 = пространственный.

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

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

7 = некластеризованный хэш-индекс

type_desc

nvarchar(60)

Описание типа индекса.

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE

Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

некластеризованный индекс columnstore

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

NONCLUSTERED HASH

Индексы NONCLUSTERED HASH поддерживаются только в таблицах с оптимизацией для памяти. Представление sys.hash_indexes отображает текущие хэш-индексы и свойства хэша. Дополнительные сведения см. в разделе sys.hash_indexes (Transact-SQL).

Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

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 для кучи или нефильтруемого индекса.

Разрешения

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

Примеры

В следующем примере возвращаются все индексы для таблицы 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

In-Memory OLTP (оптимизация в памяти)