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 nessa exibição; Em vez disso, use a exibição do 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 um ou mais modos de exibição do sistema equivalentes, confira 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 inserido> 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 inserido> 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 inserido> 1.

NULL = A tabela é particionada quando indid é 0 ou 1.
páginas 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 inserido> 1.

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

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

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

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

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

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

Para a entrada> 1, usada é a contagem de páginas usada para o índice.

0 = O índice é particionado quando inserido> 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 inserido> 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 inserido> 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.
sinalizadores de bloqueio 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, reserved e used não retornarão resultados precisos se a tabela ou o í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 de catálogo sys.allocation_units ou sys.partitions ou a exibição de gerenciamento dinâmico sys.dm_db_partition_stats .

No SQL Server 2000 e versões 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 as estatísticas, considere as seguintes soluções:

  • Não fazer nada. O novo valor rowmodctr freqüentemente ajudará você a determinar quando atualizar as 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.

Confira também

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