Qual é a diferença entre a busca de Índice Clusterizado (CI) e a busca de Índice Não Clusterizado (NCI)? Um funciona melhor que o outro?
A razão pela qual estou perguntando isso é porque tenho uma tabela com 50 milhões de linhas e 150 colunas. Ele tem uma coluna chamada ID
definida como o índice clusterizado. Há mais um NCI nele com o mesmo ID de chave de índice e sete include
colunas -d. Parece-me que o índice NC é uma duplicata aqui e pode ser descartado com segurança.
Então, eu quero algumas opiniões/conselhos de especialistas se ele pode ser descartado com segurança ou deve ser mantido intacto?
Um índice não clusterizado que tenha a(s) mesma(s) chave(s)* que o índice clusterizado ainda pode ser útil, porque o índice não clusterizado geralmente será menor e mais denso. Lembre-se de que um índice clusterizado inclui todos os dados em linha, portanto, normalmente é o índice mais amplo (menos denso) possível.
* As mesmas colunas-chave, na mesma sequência, classificadas da mesma forma (asc/desc).
Para uma busca singleton (uma busca usando um predicado de igualdade em um índice exclusivo), a principal diferença é a chance presumida de que a(s) página(s) de índice necessária(s) para localizar esse registro único já esteja na memória. Todas as coisas sendo iguais, um índice não clusterizado com 100 páginas tem uma chance melhor do que um índice clusterizado armazenado em 10.000 páginas.
Para qualquer outro tipo de busca, exceto um singleton, haverá também um componente de varredura. A parte de digitalização também se beneficiará da maior densidade do índice não clusterizado (mais linhas por página). Mesmo que as páginas devam vir do armazenamento persistente, a leitura de menos páginas é mais rápida.
Você deve verificar a documentação do sistema, perguntar à pessoa que adicionou o índice e/ou procurar comentários de código para entender por que esse índice existe. Você também precisa verificar cuidadosamente as definições de índice completas , incluindo compactação, e examinar os scripts de manutenção de índice. Pode haver outras razões especiais para ter o índice não clusterizado (por exemplo, capacidade de reconstruir online).