Se a própria tabela estiver agrupada , todos os índices secundários conterão uma cópia da chave de cluster (uma chave que determina a ordem física das linhas na tabela de cluster).
O motivo:as linhas em uma tabela clusterizada são fisicamente armazenadas em uma árvore B (não no heap da tabela) e, portanto, podem mover quando os nós da árvore B são divididos ou aglutinados, então o índice secundário não pode conter apenas o "ponteiro" da linha (uma vez que estaria em perigo de "pendurar" após a movimentação da linha).
Muitas vezes, isso tem um efeito prejudicial no desempenho - consultar por meio de índice secundário pode exigir pesquisa dupla :
- Primeiro, pesquise o índice secundário e obtenha a chave de clustering.
- Segundo, com base na chave de cluster recuperada acima, pesquise na própria tabela clusterizada (que é a árvore B).
No entanto, se tudo o que você deseja são os campos da chave de cluster, apenas a primeira pesquisa é necessária.
Também conhecido como "índice clusterizado" no MS SQL Server.
Normalmente, mas não necessariamente uma CHAVE PRIMÁRIA no MS SQL Server.
É lamentável que o cluster esteja ativado por padrão no MS SQL Server - as pessoas geralmente deixam o padrão sem considerar totalmente seus efeitos. Quando o clustering não for apropriado, você deve especificar a palavra-chave NONCLUSTERED explicitamente para desativá-la.