Partilhar via


INDEXPROPERTY (Transact-SQL)

Aplica-se a:Banco de Dados SQL doAzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

Sintaxe

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

Arguments

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 das estatísticas para as quais retornar informações de propriedade. index_or_statistics_name é nvarchar(128).

propriedade

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

Observação

Salvo indicação em 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 Description Valor
IndexDepth Profundidade do índice. Número de níveis de índice.

NULL = O índice XML ou a entrada não são válidos.
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 especificada ou exibição indexada. ID do índice
IsAutoStatistics As estatísticas foram geradas pela AUTO_CREATE_STATISTICS opção de ALTER DATABASE. 1 = Verdadeiro
0 = Índice falso ou XML.
IsClustered O índice está agrupado. 1 = Verdadeiro
0 = Índice falso ou XML.
IsDisabled O índice está desativado. 1 = Verdadeiro
0 = Falso
NULL = A entrada não é válida.
IsFulltextKey Índice é a chave de indexação semântica e de texto completo de uma tabela. 1 = Verdadeiro
0 = Índice falso 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 contêm estatísticas em 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 falso ou XML
NULL = A entrada não é válida.
IsPadIndex Index especifica o espaço a ser deixado aberto em cada nó interior. 1 = Verdadeiro
0 = Índice falso ou XML.
IsPageLockDisallowed Valor de bloqueio de página definido pela ALLOW_PAGE_LOCKS opção 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 ALLOW_ROW_LOCKS opção 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 é estatística CREATE STATISTICS criada pela declaração ou pela AUTO_CREATE_STATISTICS opção de ALTER DATABASE. 1 = Verdadeiro
0 = Índice falso ou XML.
IsUnique O índice é único. 1 = Verdadeiro
0 = Índice falso ou XML.
IsColumnstore Index é um índice columnstore otimizado para 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 devolução

int

Exceptions

Retorna NULL em caso de erro ou se um chamador não tiver permissão para exibir o objeto.

Um usuário só pode visualizar os metadados de protegíveis que o usuário possui ou sobre os quais o usuário recebe permissão. Isso significa que funções internas emissoras de metadados podem INDEXPROPERTY retornar NULL se o usuário não tiver nenhuma permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Examples

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

A. Retornar propriedades para índice na tabela Employee

O exemplo seguinte devolve os valores para , IsClusteredIndexDepth, e IndexFillFactor propriedades para o PK_Employee_BusinessEntityID índice da Employee tabela na base 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];

Aqui está o conjunto de resultados.

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

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

B. Retornar propriedades para índice na tabela FactResellerSales

O exemplo a FactResellerSales seguir examina as propriedades de um dos índices na tabela.

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