Eu concordo com o Cade Roux .
Este artigo deve colocá-lo no caminho certo:
Uma coisa a observar, os índices clusterizados devem ter uma chave exclusiva (uma coluna de identidade que eu recomendaria) como a primeira coluna. Basicamente, ajuda seus dados a serem inseridos no final do índice e não causa muitas E / S de disco e divisões de página.
Em segundo lugar, se você estiver criando outros índices nos seus dados e eles forem construídos de maneira inteligente, eles serão reutilizados.
Por exemplo, imagine que você pesquise uma tabela em três colunas
estado, município, zip.
- você às vezes pesquisa apenas por estado.
- você às vezes pesquisa por estado e município.
- você pesquisa frequentemente por estado, município, CEP.
Em seguida, um índice com estado, município, zip. será usado nas três pesquisas.
Se você pesquisar sozinho apenas por zip, o índice acima não será usado (pelo SQL Server de qualquer maneira), pois zip é a terceira parte desse índice e o otimizador de consultas não considerará esse índice útil.
Você poderia criar um índice apenas no Zip que seria usado nesta instância.
A propósito: Podemos tirar vantagem do fato de que, com a indexação de várias colunas, a primeira coluna de índice é sempre utilizável para pesquisa e, quando você pesquisa apenas por 'estado', é eficiente, mas ainda não tão eficiente quanto o índice de coluna única no estado ' "
Eu acho que a resposta que você está procurando é que depende das cláusulas where das suas consultas usadas com freqüência e também do seu grupo por.
O artigo vai ajudar muito. :-)
IDENTITY, GUID, etc
. 3) "Em seguida, um índice com estado, município e CEP será usado nas três pesquisas." é falso e contradiz "a primeira coluna é utilizável". As segundas e secundárias colunas do índice não são utilizáveis para pesquisa.Sim. Eu recomendo que você verifique os artigos de Kimberly Tripp sobre indexação .
Se um índice estiver "cobrindo", não será necessário usar nada além do índice. No SQL Server 2005, você também pode adicionar colunas adicionais ao índice que não fazem parte da chave, o que pode eliminar as viagens para o restante da linha.
Tendo vários índices, cada um em uma única coluna pode significar que apenas um índice é usado - você precisará consultar o plano de execução para ver quais efeitos os diferentes esquemas de indexação oferecem.
Você também pode usar o assistente de ajuste para ajudar a determinar quais índices farão com que uma determinada consulta ou carga de trabalho tenha o melhor desempenho.
fonte
O índice de várias colunas pode ser usado para consultas referentes a todas as colunas:
Isso pode ser consultado diretamente usando o índice de várias colunas. Por outro lado, no máximo um índice de coluna única pode ser usado (ele teria que procurar todos os registros com Coluna1 = 1 e, em seguida, marcar Coluna2 e Coluna3 em cada um deles).
fonte
Um item que parece ter sido esquecido são as transformações em estrelas. Os operadores de interseção de índice resolvem o predicado calculando o conjunto de linhas atingidas por cada um dos predicados antes que qualquer E / S seja feita na tabela de fatos. Em um esquema em estrela, você indexaria cada chave de dimensão individual e o otimizador de consulta pode resolver quais linhas selecionar pelo cálculo da interseção do índice. Os índices em colunas individuais oferecem a melhor flexibilidade para isso.
fonte
Se você tiver consultas que freqüentemente usarão um conjunto de colunas relativamente estático, a criação de um único índice de cobertura que inclua todas elas melhorará drasticamente o desempenho.
Ao colocar várias colunas no seu índice, o otimizador só precisará acessar a tabela diretamente se uma coluna não estiver no índice. Eu uso muito isso no data warehousing. A desvantagem é que isso pode custar muito mais, especialmente se os dados forem muito voláteis.
Criar índices em colunas únicas é útil para operações de pesquisa frequentemente encontradas em sistemas OLTP.
Você deve se perguntar por que está indexando as colunas e como elas serão usadas. Execute alguns planos de consulta e veja quando eles estão sendo acessados. O ajuste do índice é tanto instinto quanto a ciência.
fonte