Share via


sys.sysindexes (Transact-SQL)

Aplica-se a:SQL Server

Contém uma linha para cada índice e tabela no banco de dados atual. Não há suporte a índices XML nessa exibição. Não há suporte total para tabelas e índices particionados nesta exibição; em vez disso, use a exibição de catálogo sys.indexes .

Importante

Esta tabela do sistema do SQL Server 2000 foi incluída como uma exibição para compatibilidade com versões anteriores. É recomendável usar as exibições do sistema do SQL Server atual. Para localizar a exibição ou exibições equivalentes do sistema, consulte Mapeando tabelas do sistema para exibições do sistema (Transact-SQL). Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Nome da coluna Tipo de dados Descrição
id int ID da tabela à qual o índice pertence.
status int Informações de status do sistema.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
first binary(6) Ponteiro para a primeira página, ou página-raiz.

Não utilizado quando indid = 0.

NULL = O índice é particionado quando indid> 1.

NULL = a tabela é particionada quando indid é 0 ou 1.
indid smallint ID do índice:

0 = Heap

1 = Índice clusterizado

>1 = Índice não clusterizado
root binary(6) Para indid>= 1, root é o ponteiro para a página raiz.

Não utilizado quando indid = 0.

NULL = O índice é particionado quando indid> 1.

NULL = a tabela é particionada quando indid é 0 ou 1.
minlen smallint Tamanho mínimo de uma linha.
keycnt smallint Número de chaves.
groupid smallint ID do grupo de arquivos em que o objeto foi criado.

NULL = O índice é particionado quando indid> 1.

NULL = a tabela é particionada quando indid é 0 ou 1.
dpages int Para indid = 0 ou indid = 1, dpages é a contagem de páginas de dados usadas.

Para indid> 1, dpages é a contagem de páginas de índice usadas.

0 = O índice é particionado quando indid> 1.

0 = A tabela é particionada quando indid é 0 ou 1.

Não produzirá resultados precisos se ocorrer estouro de linha.
Reservados int Para indid = 0 ou indid = 1, reservado é a contagem de páginas alocadas para todos os índices e dados de tabela.

Para indid> 1, reservado é a contagem de páginas alocadas para o índice.

0 = O índice é particionado quando indid> 1.

0 = A tabela é particionada quando indid é 0 ou 1.

Não produzirá resultados precisos se ocorrer estouro de linha.
usados int Para indid = 0 ou indid = 1, usado é a contagem do total de páginas usadas para todos os dados de índice e tabela.

Para indid> 1, usado é a contagem de páginas usadas para o índice.

0 = O índice é particionado quando indid> 1.

0 = A tabela é particionada quando indid é 0 ou 1.

Não produzirá resultados precisos se ocorrer estouro de linha.
rowcnt bigint Contagem de linhas no nível de dados com base em indid = 0 e indid = 1.

0 = O índice é particionado quando indid> 1.

0 = A tabela é particionada quando indid é 0 ou 1.
rowmodctr int Conta o número total de linhas inseridas, excluídas ou atualizadas desde a última atualização das estatísticas da tabela.

0 = O índice é particionado quando indid> 1.

0 = A tabela é particionada quando indid é 0 ou 1.

No SQL Server 2005 (9.x) e posterior, rowmodctr não é totalmente compatível com versões anteriores. Para obter mais informações, consulte Comentários.
reserved3 int Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
reserved4 int Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
xmaxlen smallint Tamanho máximo de uma linha
maxirow smallint Tamanho máximo de uma linha de índice não folha.

No SQL Server 2005 (9.x) e posterior, maxirow não é totalmente compatível com versões anteriores.
OrigFillFactor tinyint Valor do fator de preenchimento original utilizado quando o índice foi criado. Este valor não é mantido; porém, poderá ser útil se você tiver que recriar um índice e não se lembrar do fator de preenchimento que foi utilizado.
StatVersion tinyint Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
reserved2 int Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
FirstIAM binary(6) NULL = O índice é particionado.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
impid smallint Sinalizador de implementação de índice.

Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
lockflags smallint Usado para restringir as granularidades de bloqueio consideradas para um índice. Por exemplo, para minimizar o custo de bloqueio, uma tabela de pesquisa que é essencialmente somente leitura pode ser configurada para realizar apenas bloqueios de nível de tabela.
pgmodctr int Retorna 0.

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
keys varbinary(816) Lista de IDs das colunas que constituem a chave de índice.

Retorna NULL.

Para exibir as colunas de chave de índice, use sys.sysindexkeys.
name sysname Nome do índice ou estatística. Retorna NULL quando indid = 0. Modifique seu aplicativo de modo a fazê-lo procurar um nome de heap NULL.
statblob imagem Objeto binário grande (BLOB) de estatísticas.

Retorna NULL.
maxlen int Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
rows int Contagem de linhas no nível de dados com base em indid = 0 e indid = 1, e o valor é repetido para indid>1.

Comentários

Colunas definidas como reservadas não devem ser usadas.

As colunas dpages, reservadas e usadas não retornarão resultados precisos se a tabela ou índice contiver dados na unidade de alocação ROW_OVERFLOW. Além disso, as contagens de página para cada índice são rastreadas separadamente e não são agregadas na tabela base. Para exibir contagens de páginas, use as exibições do catálogo sys.allocation_units ou sys.partitions ou a sys.dm_db_partition_stats exibição de gerenciamento dinâmico.

No SQL Server 2000 e anteriores, o Mecanismo de Banco de Dados mantinha contadores de modificação em nível de linha. Tais contadores, agora, são mantidos no nível de coluna. Portanto, a coluna rowmodctr é calculada e produz resultados semelhantes aos resultados em versões anteriores, mas não são exatos.

Se você usar o valor em rowmodctr para determinar quando atualizar estatísticas, considere as seguintes soluções:

  • Não fazer nada. O novo valor rowmodctr frequentemente ajudará você a determinar quando atualizar estatísticas porque o comportamento está razoavelmente próximo dos resultados de versões anteriores.

  • Usar AUTO_UPDATE_STATISTICS. Para obter mais informações, consulte Estatísticas.

  • Usar um tempo limite para determinar quando atualizar as estatísticas. Por exemplo, toda hora, todo dia ou toda semana.

  • Usar informações de nível de aplicativo para determinar quando atualizar as estatísticas. Por exemplo, sempre que o valor máximo de uma coluna de identidade for alterado em mais de 10.000, ou sempre que uma operação de inserção em massa for executada.

Consulte Também

Exibições do Catálogo (Transact-SQL)
Mapeando tabelas do sistema para exibições do sistema (Transact-SQL)
sys.indexes (Transact-SQL)