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)