(Novo no SQL Server) Estou lutando para entender o propósito dos índices não clusterizados no SQL Server. Leia a documentação do MS (tanto para a versão 2012 quanto para a versão 2008 que possui belas imagens) e alguns recursos online, mas ainda há muitas perguntas sem resposta.
- Não cl. o índice mantém a árvore B classificada? Pelo que entendi, sim - http://technet.microsoft.com/en-us/library/aa933130%28v=sql.80%29.aspx , caso contrário, a analogia do índice do livro não faria sentido.
- Por que diabos você quer noncl. índice a ser definido na tabela ou exibição com um índice clusterizado ou em uma pilha? Heap não tem ordem, então definir noncl. index on heap faz algum sentido - você pode encontrar rapidamente correspondências exatas. No entanto, a tabela com índice clusterizado já possui dados organizados e a definição de noncl. index só irá acelerar buscas exatas.
Você tem duas perguntas aqui:
1. O índice não clusterizado tem uma árvore B classificada? Sim, porque você precisa chegar à página certa do índice para encontrar os dados que procura.
2. Por que você deseja um índice não clusterizado quando também tem um índice clusterizado? Pense nas páginas brancas do catálogo telefônico como seu índice agrupado. Se você quiser localizar todas as pessoas em sua cidade com o primeiro nome "Brent", o índice agrupado não será muito útil - o índice agrupado é baseado no sobrenome, nome e inicial do meio. Não seria útil ter uma lista telefônica separada classificada pelo primeiro nome?
Assim como na vida real, a resposta pode ser sim ou não - mas depende da frequência com que você procura pessoas pelo primeiro nome e com que frequência as pessoas se mudam para dentro/fora de sua cidade ou com que frequência as pessoas mudam de nome.