Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Índices múltiplos vs índices multicoluna


Concordo com Cade Roux.

Este artigo deve colocá-lo no caminho certo:
  • Índices no SQL Server 2005/2008 – Práticas recomendadas, parte 1
  • Índices no SQL Server 2005/2008 – Parte 2 – Internos

Uma coisa a notar, índices clusterizados devem ter uma chave única (uma coluna de identidade que eu recomendaria) como a primeira coluna.

Em segundo lugar, se você estiver criando outros índices em seus dados e eles forem construídos de forma inteligente, eles serão reutilizados.

por exemplo. imagine que você pesquisa uma tabela em três colunas

estado, município, CEP.
  • às vezes você pesquisa apenas por estado.
  • às vezes você pesquisa por estado e município.
  • você pesquisa com frequência por estado, município, CEP.

Em seguida, um índice com estado, município, CEP. será usado em todas essas três pesquisas.

Se você pesquisar bastante apenas por zip, o índice acima não será usado (pelo SQL Server de qualquer maneira), pois o zip é a terceira parte desse índice e o otimizador de consulta não verá esse índice como útil.

Você poderia então criar um índice somente no Zip que seria usado nesta instância.

A propósito, podemos tirar proveito 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 não tão eficiente quanto o índice de coluna única em 'estado '

Acho que a resposta que você está procurando é que depende das cláusulas where de suas consultas usadas com frequência e também do seu group by.

O artigo vai ajudar muito. :-)