Ferramentas para identificar índices necessários

8

Eu quero criar os melhores índices para cada tabela no meu banco de dados. Existe uma consulta ou ferramenta no SQL Server para ajudar nesse processo?

mehdi lotfi
fonte
11
Existem índices sugeridos, mas estes são muito limitados e ainda devem ser avaliados por alguém que sabe o que está fazendo. Você tem uma pergunta específica sobre indexação?
JNK
11
Existe uma consulta / tabela em que você está com um desempenho ruim? Como o JNK sugeriu, você realmente só deve adicionar índices quando souber o que está fazendo (e testá-lo independentemente). A menos que você tem razão para acreditar que uma tabela precisa de um índice (enorme mesa, consultas lentas, um índice agrupado óbvio) você não deve apenas tentar e adicioná-los
Ben Brocka

Respostas:

10

Sim, existem ferramentas, como o orientador de ajuste do mecanismo de banco de dados. É fornecido com o SQL Server e faz algumas coisas bastante desagradáveis:

  • Permite considerar apenas uma carga de trabalho muito pequena (mesmo uma única consulta). O que sugerirá índices que podem ajudar apenas essa pequena carga de trabalho, sem levar em consideração o restante da carga de trabalho (os índices ajudam a acelerar algumas consultas, mas podem retardar outras, especialmente inserir / atualizar / excluir), independentemente do resto do ciclo de negócios.
  • Geralmente, ele recomenda índices redundantes que diferem apenas por uma coluna à direita ou por uma coluna incluída.
  • Realmente, realmente, realmente gosta de colunas incluídas - acho que pode ser um fetiche.

A abordagem adequada para o ajuste de índice é considerar toda a sua carga de trabalho em um ciclo de negócios completo. Às vezes, é melhor recorrer a ferramentas de terceiros do que reinventar a roda. O DBSophic cria um produto gratuito chamado Qure Workload Analyzer que, na minha opinião, faz um trabalho muito melhor que o DTA - mas sua ferramenta licenciada (Qure Workload Optimizer) é absolutamente fenomenal no que faz. No ano passado, escrevi sobre como a ferramenta funciona quando integrada ao SQL Sentry ).

Também existem algumas outras opções, por exemplo, índices ausentes são relatados nas DMVs e você também pode descobrir em quais índices estão sendo gravados (para que ocupem espaço e afetem as operações de inserção / atualização / exclusão), mas nunca (ou raramente ) usado pelas consultas do usuário:

Mas eles também precisam ressaltar que as DMVs são válidas apenas desde a última reinicialização do SQL Server e que não necessariamente abrangem um ciclo comercial adequado (e, portanto, podem estar faltando informações vitais

Aaron Bertrand
fonte
7

A ferramenta que você está falando é chamada de Orientador de Otimização do Mecanismo de Banco de Dados (DTA). Ele pode receber várias entradas e fornecer recomendações sobre coisas como índices ausentes. Vale ressaltar, porém, que essas são apenas sugestões e uma consideração cuidadosa deve ser tomada em vez de seguir cegamente as recomendações do DTA.

Tutorial para o link DTA

Também é importante notar que existem DMVs integradas para coletar esse tipo de informação:

Thomas Stringer
fonte