Compartilhar via


INDEXPROPERTY (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Banco de dados SQL no Microsoft Fabric

Retorna o índice nomeado ou valor de propriedade de estatísticas de um número de identificação de tabela, índice ou nome de estatísticas e nome de propriedade especificados. Retorna NULL para índices XML.

Convenções de sintaxe de Transact-SQL

Sintaxe

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

Argumentos

object_ID

Uma expressão que contém o número de identificação do objeto da tabela ou exibição indexada para a qual fornecer informações de propriedade de índice. object_ID é int.

index_or_statistics_name

Uma expressão que contém o nome do índice ou estatísticas para as quais as informações da propriedade devem ser retornadas. index_or_statistics_name é nvarchar(128).

property

Uma expressão que contém o nome da propriedade index ou statistics a ser retornada. property é varchar(128) e pode ter um destes valores.

Observação

A menos que observado o contrário, NULL é retornado quando a propriedade não é um nome de propriedade válido, object_ID não é uma ID de objeto válida, object_ID é um tipo de objeto sem suporte para a propriedade especificada ou o chamador não tem permissão para exibir os metadados do objeto.

Propriedade Descrição Valor
IndexDepth Profundidade do índice. Número de níveis de índice.

NULL = Índice XML ou entrada não é válido.
IndexFillFactor Valor do fator de preenchimento usado quando o índice foi criado ou reconstruído pela última vez. Fator de preenchimento
IndexID ID de índice do índice em uma tabela ou exibição indexada especificada. ID de índice
IsAutoStatistics As estatísticas foram geradas pela opção AUTO_CREATE_STATISTICS de ALTER DATABASE. 1 = Verdadeiro
0 = Índice false ou XML.
IsClustered O índice é clusterizado. 1 = Verdadeiro
0 = Índice false ou XML.
IsDisabled O índice está desabilitado. 1 = Verdadeiro
0 = Falso
NULL = A entrada não é válida.
IsFulltextKey O índice é o texto completo e a chave de indexação semântica de uma tabela. 1 = Verdadeiro
0 = Índice false ou XML.
NULL = A entrada não é válida.
IsHypothetical O índice é hipotético e não pode ser usado diretamente como um caminho de acesso a dados. Os índices hipotéticos retêm estatísticas do nível de coluna e são mantidos e usados pelo Orientador de Otimização do Mecanismo de Banco de Dados. 1 = Verdadeiro
0 = Índice False ou XML
NULL = A entrada não é válida.
IsPadIndex O índice especifica o espaço a ser deixado aberto em cada nó interior. 1 = Verdadeiro
0 = Índice false ou XML.
IsPageLockDisallowed Valor de bloqueio de página definido pela opção ALLOW_PAGE_LOCKS de ALTER INDEX. 1 = O bloqueio de página não é permitido.
0 = O bloqueio de página é permitido.
NULL = A entrada não é válida.
IsRowLockDisallowed Valor de bloqueio de linha definido pela opção ALLOW_ROW_LOCKS de ALTER INDEX. 1 = O bloqueio de linha não é permitido.
0 = O bloqueio de linha é permitido.
NULL = A entrada não é válida.
IsStatistics index_or_statistics_name são estatísticas criadas pela instrução CREATE STATISTICS ou pela opção AUTO_CREATE_STATISTICS de ALTER DATABASE. 1 = Verdadeiro
0 = Índice false ou XML.
IsUnique O índice é exclusivo. 1 = Verdadeiro
0 = Índice false ou XML.
IsColumnstore Índice é um índice columnstore com otimização de memória. 1 = Verdadeiro
0 = Falso

aplica-se a: SQL Server 2012 (11.x) e versões posteriores.
IsOptimizedForSequentialKey O índice tem a otimização para inserções de última página habilitada. 1 = Verdadeiro
0 = Falso

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores.

Tipos de retorno

int

Exceções

Retorna NULL com erro ou se um chamador não tem permissão para exibir o objeto.

Um usuário só pode exibir os metadados de protegíveis que o usuário possui ou nos quais o usuário recebe permissão. Isso significa que as funções internas que emitem metadados, como INDEXPROPERTY poderão ser retornadas NULL se o usuário não tiver nenhuma permissão no objeto. Para obter mais informações, consulte a configuração de visibilidade de metadados.

Exemplos

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que você pode baixar na página inicial Microsoft SQL Server Samples and Community Projects.

A. Propriedades de retorno para índice na tabela Employee

O exemplo a seguir retorna os valores para , IsClusteredIndexDepth, e IndexFillFactor propriedades para o PK_Employee_BusinessEntityID índice da Employee tabela no banco de dados 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];

Veja aqui o conjunto de resultados.

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

B. Propriedades de retorno para índice na tabela FactResellerSales

O exemplo a seguir examina as propriedades de um dos índices na tabela 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