Qual é a diferença entre a busca do Clustered Index (CI) e a busca do Non Clustered Index (NCI)? Um tem desempenho 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. Possui uma coluna denominada ID
definida como o índice em cluster. Há mais um NCI com o mesmo ID da 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 puder ser descartado com segurança ou se for mantido intacto?
sql-server
sql-server-2012
index-tuning
SQLPRODDBA
fonte
fonte
Respostas:
Um índice não clusterizado que possua a (s) mesma (s) chave (s) * do índice clusterizado, ainda pode ser útil, porque o índice não clusterizado geralmente será menor e mais denso. Lembre-se de que um índice em cluster inclui todos os dados em linha; portanto, é normalmente o índice mais amplo (menos denso) possível.
* As mesmas colunas-chave, na mesma sequência, classificaram da mesma maneira (asc / desc).
Para uma busca simples (uma busca usando um predicado de igualdade em um índice exclusivo), a principal diferença é a maior chance presumida de que as páginas de índice necessárias para encontrar esse registro único já estejam na memória. Tudo igual, 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, também haverá um componente de verificação. A parte de varredura 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, pedir à 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 completas do índice , incluindo a compactação, e examinar os scripts de manutenção do índice. Pode haver outros motivos especiais para ter o índice não clusterizado (por exemplo, capacidade de reconstruir online).
fonte