Eu quero criar os melhores índices para cada tabela em meu banco de dados. Existe alguma consulta ou ferramenta no SQL Server para ajudar nesse processo?
relate perguntas
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?
-
Como determinar se um Índice é necessário ou necessário
Sim, existem ferramentas, como o orientador de ajuste do mecanismo de banco de dados. Ele vem com o SQL Server e faz algumas coisas bem desagradáveis:
A abordagem adequada para o ajuste do índice é considerar toda a carga de trabalho em um ciclo de negócios completo. Às vezes, é melhor recorrer a ferramentas de terceiros do que reinventar a roda. DBSophic faz um produto gratuito chamado Qure Workload Analyzer que eu acho que faz um trabalho muito melhor do que o DTA - mas sua ferramenta licenciada (Qure Workload Optimizer) é absolutamente fenomenal no que faz. No ano passado, escrevi em um blog sobre como a ferramenta funciona quando integrada ao SQL Sentry ).
Também existem algumas outras opções, por exemplo, índices ausentes são relatados nos DMVs e você também pode descobrir em quais índices estão sendo gravados (para que estejam ocupando espaço e afetando as operações de inserção/atualização/exclusão), mas nunca (ou raramente ) usado por consultas do usuário:
Mas eles também precisam da ressalva de que os DMVs são válidos apenas desde a última reinicialização do SQL Server e que não cobrirão necessariamente um ciclo de negócios adequado (e, portanto, podem estar faltando informações vitais
A ferramenta da qual você está falando é chamada de Database Engine Tuning Advisor (DTA para abreviar). Ele pode receber várias entradas e fornecer recomendações sobre coisas como índices ausentes. Vale a pena notar, porém, que estas são apenas sugestões e uma consideração cuidadosa deve ser tomada em vez de seguir cegamente as recomendações do DTA.
Link para o Tutorial DTA
Também é importante notar que existem DMVs integrados para coletar esse tipo de informação:
Pode parecer bom demais para ser verdade, mas encontrei uma consulta que faz exatamente isso: