INDEXPROPERTY (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

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

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

Синтаксис

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )   

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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

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

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

Примечание.

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

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

NULL = Неверный XML-индекс или вход.
IndexFillFactor Значение коэффициента заполнения, использованное при создании индекса или при его последней перестройке. Коэффициент заполнения
IndexID Идентификатор индекса указанной таблицы или индексированного представления. Идентификатор индекса.
IsAutoStatistics Статистики были сформированы параметром AUTO_CREATE_STATISTICS инструкции ALTER DATABASE. 1 = True

0 = False или XML-индекс.
IsClustered Кластеризованный индекс. 1 = True

0 = False или XML-индекс.
IsDisabled Индекс отключен. 1 = True

0 = False.

NULL = Введенные значения недопустимы.
IsFulltextKey Индекс является ключом для полнотекстового и семантического индексирования таблицы. Применимо: SQL Server 2008 (10.0.x) и более поздних версий.

1 = True

0 = False или XML-индекс.

NULL = Введенные значения недопустимы.
IsHypothetical Индекс является гипотетическим и не может использоваться напрямую в качестве пути доступа к данным. Гипотетические индексы содержат статистики уровня столбца и управляются и используются помощником по настройке ядра СУБД. 1 = True

0 = False или XML-индекс.

NULL = Введенные значения недопустимы.
IsPadIndex Индекс задает пространство, которое должно оставаться открытым на каждом внутреннем узле. Применимо: SQL Server 2008 (10.0.x) и более поздних версий.

1 = True

0 = False или XML-индекс.
IsPageLockDisallowed Значение блокировки страницы, установленное параметром ALLOW_PAGE_LOCKS инструкции ALTER INDEX. Применимо: SQL Server 2008 (10.0.x) и более поздних версий.

1 = Блокировка страниц запрещена;

0 = Блокировка страниц разрешена.

NULL = Введенные значения недопустимы.
IsRowLockDisallowed Значение блокировки строк, установленное параметром ALLOW_ROW_LOCKS инструкции ALTER INDEX. Применимо: SQL Server 2008 (10.0.x) и более поздних версий.

1 = Блокировка строк запрещена;

0 = Блокировка строк разрешена.

NULL = Введенные значения недопустимы.
IsStatistics Аргумент index_or_statistics_name является статистикой, созданной инструкцией CREATE STATISTICS или параметром AUTO_CREATE_STATISTICS инструкции ALTER DATABASE. 1 = True

0 = False или XML-индекс.
IsUnique Индекс является уникальным. 1 = True

0 = False или XML-индекс.
IsColumnstore Оптимизированный для памяти xVelocity индекс columnstore. Область применения: SQL Server 2012 (11.x) и более поздних версий.

1 = True

0 = False.
IsOptimizedForSequentialKey Индекс оптимизирован для включения операций вставки на последнюю страницу. Область применения: SQL Server 2019 (15.x) и более поздних версий.

1 = True

0 = False.

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

int

Исключения

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

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

Примеры

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

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  
  
(1 row(s) affected)  

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

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

-- Uses AdventureWorks  
  
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  

См. также

Инструкция CREATE INDEX (Transact-SQL)
Статистика
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.stats (Transact-SQL)
sys.stats_columns (Transact-SQL)