Conheço as principais diferenças entre índices clusterizados e não clusterizados e tenho uma compreensão de como eles realmente funcionam. Eu entendo como índices agrupados e não agrupados melhoram o desempenho de leitura. Mas uma coisa que não tenho certeza é quais seriam as razões pelas quais eu escolheria um em vez do outro.
Por exemplo: Se uma tabela não tem um índice clusterizado, deve-se criar um índice não clusterizado e qual é a vantagem de fazer
Respostas:
Só quero deixar um aviso: por favor, escolha com muito cuidado o seu índice clusterizado! Cada tabela de dados "normal" deve ter um índice clusterizado, já que ter um índice clusterizado realmente acelera muitas operações - sim, acelera , até mesmo inserções e exclusões! Mas apenas se você escolher um bom índice clusterizado.
É a estrutura de dados mais replicada em seu banco de dados SQL Server. A chave de cluster também fará parte de cada índice não clusterizado da sua tabela.
Você deve ter muito cuidado ao escolher uma chave de cluster - deve ser:
estreito (4 bytes ideal)
exclusivo (afinal, é o "ponteiro de linha". Se você não torná-lo exclusivo, o SQL Server fará isso em segundo plano, custando alguns bytes para cada entrada vezes o número de linhas e o número de índices não agrupados você tem - isso pode ser muito caro!)
estático (nunca mude - se possível)
idealmente sempre crescente para que você não termine com uma fragmentação de índice horrível (um GUID é o oposto total de uma boa chave de cluster - por esse motivo específico)
deve ser não anulável e, idealmente, também de largura fixa - a
varchar(250)
torna uma chave de clustering muito ruimQualquer outra coisa deve realmente ser o segundo e terceiro nível de importância por trás desses pontos ....
Veja algumas das postagens do blog de Kimberly Tripp ( The Queen of Indexing ) sobre o assunto - tudo o que ela escreveu em seu blog é absolutamente inestimável - leia, faça uma digestão - viva de acordo com isso!
fonte
non clustered
índice faz por nós. quais são a sua importância ..?