sys.indexes (Transact-SQL)
Aplica-se a: SQL Server
Banco de Dados
SQL do Azure Instância Gerenciada de SQL
do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
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)