Partilhar via


sys.indexes (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Banco de Dados SQL no Microsoft Fabric

Contém uma linha por índice ou heap de um objeto tabular, como uma tabela, exibição ou função com valor de tabela.

Nome da coluna Tipo de dados Descrição
object_id int ID do objeto ao qual este índice pertence.
name sysname Nome do índice. name é exclusivo apenas dentro do objeto.

NULL = Heap
index_id int ID do índice. index_id é exclusivo apenas dentro do objeto.

0 = Heap

1 = Índice clusterizado

> 1 = Índice não clusterizado
tipo tinyint Tipo de índice:

0 = Heap

1 = rowstore clusterizado (árvore B)

2 = rowstore não clusterizado (árvore B)

3 = XML

4 = Espacial

5 = Índice columnstore clusterizado. Aplica-se a: SQL Server 2014 (12.x) e posterior.

6 = Índice columnstore não clusterizado. Aplica-se a: SQL Server 2012 (11.x) e posterior.

7 = Índice de hash não clusterizado. Aplica-se a: SQL Server 2014 (12.x) e posterior.
type_desc nvarchar(60) Descrição de tipo de índice:

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE – Aplica-se a: SQL Server 2014 (12.x) e posterior.

NONCLUSTERED COLUMNSTORE – Aplica-se a: SQL Server 2012 (11.x) e posterior.

HASH NÃO CLUSTERIZADO: os índices de HASH não clusterizados têm suporte apenas em tabelas com otimização de memória. A sys.hash_indexes exibição mostra os índices de hash atuais e as propriedades de hash. Para obter mais informações, consulte sys.hash_indexes (Transact-SQL). Aplica-se a: SQL Server 2014 (12.x) e posterior.
is_unique bit 1 = O índice é exclusivo.

0 = O índice não é exclusivo.

Sempre 0 para índices columnstore clusterizados.
data_space_id int A ID do espaço de dados deste índice. O espaço de dados é um grupo de arquivos ou um esquema de partição.

0 = object_id é uma função com valor de tabela ou índice na memória.
ignore_dup_key bit 1 = IGNORE_DUP_KEY está ON.

0 = IGNORE_DUP_KEY está OFF.
is_primary_key bit 1 = O índice faz parte de uma restrição PRIMARY KEY.

Sempre 0 para índices columnstore clusterizados.
is_unique_constraint bit 1 = O índice faz parte de uma restrição UNIQUE.

Sempre 0 para índices columnstore clusterizados.
fill_factor tinyint > 0 = porcentagem FILLFACTOR usada quando o índice foi criado ou recriado.

0 = Valor padrão

Sempre 0 para índices columnstore clusterizados.
is_padded bit 1 = PADINDEX está ON.

0 = PADINDEX está OFF.

Sempre 0 para índices columnstore clusterizados.
is_disabled bit 1 = O índice está desabilitado.

0 = O índice não está desabilitado.
is_hypothetical bit 1 = O índice é hipotético e não pode ser usado diretamente como um caminho de acesso a dados. Índices hipotéticos mantêm estatísticas em nível de coluna.

0 = O índice não é hipotético.
allow_row_locks bit 1 = O índice permite bloqueios de linha.

0 = O índice não permite bloqueios de linha.

Sempre 0 para índices columnstore clusterizados.
allow_page_locks bit 1 = O índice permite bloqueios de página.

0 = O índice não permite bloqueios de página.

Sempre 0 para índices columnstore clusterizados.
has_filter bit 1 = O índice tem um filtro e só contém linhas que atendem à definição do filtro.

0 = O índice não tem um filtro.
filter_definition nvarchar(max) Expressão do subconjunto de linhas incluído no índice filtrado.

NULL para heap, índice não filtrado ou permissões insuficientes na tabela.
compression_delay int > 0 = Atraso de compactação do índice columnstore especificado em minutos.

NULL = O atraso de compactação do grupo de linhas do índice columnstore é gerenciado automaticamente.
suppress_dup_key_messages bit 1 = O índice está configurado para suprimir mensagens de chave duplicadas durante uma operação de recompilação de índice.

0 = O índice não está configurado para suprimir mensagens-chave duplicadas durante uma operação de recompilação de índice.

Aplica-se a: SQL Server (a partir do SQL Server 2017 (14.x)), Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure
auto_created bit 1 = O índice foi criado pelo ajuste automático.

0 = O índice foi criado pelo usuário.

Aplica-se a: Banco de Dados SQL do Azure
optimize_for_sequential_key bit 1 = O índice tem a otimização de inserção da última página habilitada.

0 = Valor padrão. O índice tem a otimização de inserção da última página desativada.

Aplica-se a: SQL Server (a partir do SQL Server 2019 (15.x)), Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure

Permissões

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos

O exemplo a seguir retorna todos os índices da tabela Production.Product no banco de dados AdventureWorks2022.

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  

Próximas etapas

Exibições do catálogo de objeto (Transact-SQL)
Exibições do Catálogo (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)
Consultando as perguntas frequentes do catálogo do sistema do SQL Server
OLTP na memória (otimização na memória)