No SQL Server, o que significa a parte 'chave' da frase 'chave de índice'? A chave é um número? O que é isso?
Se eu tiver a tabela de dados contendo uma coluna chamada LastNames e tiver, digamos, um índice clusterizado nela, a 'chave' para cada linha é simplesmente o sobrenome? Um exemplo de 'valor-chave' seria algo como 'Cooper'?
Estou perguntando porque em índices não clusterizados em tabelas clusterizadas, a página folha do índice não clusterizado contém a chave do índice clusterizado. Mas o que significa que contém a 'chave' do índice? Isso significa os dados reais da coluna armazenados na página folha do índice clusterizado (ou seja, a página de dados) para a coluna que possui um índice clusterizado?
Se estivermos falando sobre uma versão atualmente suportada do Microsoft SQL Server, um índice não clusterizado realmente contém uma cópia da chave de índice clusterizado .
Esta é uma das razões pelas quais há ênfase em manter as chaves tão restritas quanto práticas. Obviamente, uma chave agrupada consistindo em um
integer
ocuparia muito menos espaço no índice não agrupado e, portanto, também exigiria menos E/S do que se a chave fossevarchar(128)
.Observação: se você tiver um índice clusterizado que seja "não exclusivo", o SQL Server inserirá um inteiro oculto na chave para torná-lo exclusivo. Por definição, um índice clusterizado deve ser exclusivo. Esse número oculto também seria incluído nos índices não agrupados, é claro.
Se você estiver usando alguma outra implementação de SQL, os detalhes podem ser diferentes.
EDIT: [Re question in comment} Se você tiver:
Clustered Index
on columnLastName
enon-clustered index
on columnFirstName
, esses são dois índices separados.O
clustered index
controla a ordem de classificação da tabela, que contém todos os dados da tabela. Então,clustered index
tem oclustered index key
onLastName
e o resto dos dados na tabela. Oclustered index
pode fornecer a resposta.O
non-clustered index
terá o valor não agrupado paraFirstName
e oCluster Key
(que éLastName
) nele. Dependendo das decisões do otimizador que dependem de mais detalhes da consulta, esse índice pode ser usado para satisfazer a consulta.