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


INDEXPROPERTY (Transact-SQL)

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

Возвращает значение свойства именованного индекса или статистики для указанного идентификационного номера таблицы, имени индекса или статистики, а также имени свойства. Возвращается NULL для XML-индексов.

Соглашения о синтаксисе Transact-SQL

Синтаксис

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

Аргументы

object_ID

Выражение, содержащее идентификационный номер объекта таблицы или индексированного представления, для которого предоставляются сведения о свойстве индекса. Аргумент object_ID имеет тип int.

index_or_statistics_name

Выражение, содержащее имя индекса или статистики, для которого возвращаются сведения о свойстве. Аргумент index_or_statistics_name имеет тип nvarchar(128).

свойство

Выражение, содержащее имя возвращаемого свойства индекса или статистики. Аргумент property имеет тип varchar(128) и может принимать одно из указанных ниже значений.

Примечание.

Если не указано иное, NULL возвращается, если свойство не является допустимым именем свойства, object_ID не является допустимым идентификатором объекта, object_ID является неподдерживаемым типом объекта для указанного свойства, или вызывающий объект не имеет разрешения на просмотр метаданных объекта.

Свойство Description Значение
IndexDepth Глубина индекса. Количество уровней индекса.

NULL = недопустимый xml-индекс или входные данные.
IndexFillFactor Значение коэффициента заполнения, использованное при создании индекса или при его последней перестройке. Коэффициент заполнения
IndexID Идентификатор индекса указанной таблицы или индексированного представления. Идентификатор индекса.
IsAutoStatistics Статистика была создана параметром AUTO_CREATE_STATISTICSALTER DATABASE. 1 = Верно
0 = false или XML-индекс.
IsClustered Кластеризованный индекс. 1 = Верно
0 = false или XML-индекс.
IsDisabled Индекс отключен. 1 = Верно
0 = Ложь
NULL = недопустимые входные данные.
IsFulltextKey Индекс является ключом для полнотекстового и семантического индексирования таблицы. 1 = Верно
0 = false или XML-индекс.
NULL = недопустимые входные данные.
IsHypothetical Индекс является гипотетическим и не может использоваться непосредственно в качестве пути доступа к данным. Гипотетические индексы содержат статистики уровня столбца и управляются и используются помощником по настройке ядра СУБД. 1 = Верно
0 = false или XML-индекс
NULL = недопустимые входные данные.
IsPadIndex Индекс задает пространство, которое должно оставаться открытым на каждом внутреннем узле. 1 = Верно
0 = false или XML-индекс.
IsPageLockDisallowed Значение блокировки страницы, заданное параметром ALLOW_PAGE_LOCKSALTER INDEX. 1 = блокировка страницы запрещена.
0 = Блокировка страниц разрешена.
NULL = недопустимые входные данные.
IsRowLockDisallowed Значение блокировки строк, заданное параметром ALLOW_ROW_LOCKSALTER INDEX. 1 = блокировка строк запрещена.
0 = Допускается блокировка строк.
NULL = недопустимые входные данные.
IsStatistics index_or_statistics_name — это статистика, созданная инструкцией CREATE STATISTICS или параметром AUTO_CREATE_STATISTICSALTER DATABASE. 1 = Верно
0 = false или XML-индекс.
IsUnique Индекс является уникальным. 1 = Верно
0 = false или XML-индекс.
IsColumnstore Индекс — это оптимизированный для памяти индекс columnstore. 1 = Верно
0 = Ложь

относится к: SQL Server 2012 (11.x) и более поздним версиям.
IsOptimizedForSequentialKey Индекс оптимизирован для включения операций вставки на последнюю страницу. 1 = Верно
0 = Ложь

Область применения: SQL Server 2019 (15.x) и более поздних версий.

Типы возвращаемых данных

int

Исключения

Возвращает ошибку NULL или если вызывающий объект не имеет разрешения на просмотр объекта.

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

Примеры

Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

А. Возвращать свойства для индекса в таблице Employee

Следующий пример возвращает значения для IsClustered, IndexDepthи IndexFillFactor свойства индекса EmployeePK_Employee_BusinessEntityID таблицы в базе данных AdventureWorks2025.

SELECT
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IsClustered') AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IndexFillFactor') AS [Fill Factor];

Вот результат.

Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1            2           0

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

В. Возврат свойств для индекса в таблице FactResellerSales

В приведенном ниже примере проверяются свойства одного из индексов таблицы FactResellerSales.

SELECT
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsClustered') AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsColumnstore') AS [Is Columnstore Index],
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IndexFillFactor') AS [Fill Factor];
GO