Como posso saber quais recomendações de índice do SQL Server 2005 implementar, se houver?

StackOverflow https://stackoverflow.com/questions/3975

  •  08-06-2019
  •  | 
  •  

Pergunta

Estamos no processo de atualização de uma de nossas instâncias do SQL Server de 2000 para 2005.Instalei o painel de desempenho (http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en) para acesso a alguns relatórios de alto nível.Um dos relatórios mostra índices ausentes (recomendados).Acho que é baseado em alguma visão do sistema mantida pelo otimizador de consulta.

Minha pergunta é qual é a melhor maneira de determinar quando seguir uma recomendação de índice.Eu sei que não faz sentido aplicar todas as sugestões do otimizador.Vejo muitos conselhos que basicamente dizem para experimentar o índice e mantê-lo se o desempenho melhorar e abandoná-lo se o desempenho piorar ou permanecer o mesmo.Gostaria de saber se existe uma maneira melhor de tomar a decisão e quais são as melhores práticas existentes sobre esse assunto.

Foi útil?

Solução

Primeira coisa a ter em conta:

Ao atualizar de 2000 para 2005 (usando desanexar e anexar), certifique-se de:

  1. Defina a compatibilidade para 90
  2. Reconstrua os índices
  3. Execute estatísticas de atualização com verificação completa

Se você não fizer isso, obterá planos abaixo do ideal.

Se a tabela estiver grave principalmente, você deseja o mínimo de índices possível se a tabela for usada para muitas consultas de leitura, você precisará garantir que a cláusula WHERE seja coberta por índices.

Outras dicas

O conselho que você recebeu está certo.Experimente todos eles, um por um.

NÃO há substituto para testes quando se trata de desempenho.A menos que você prove isso, você não fez nada.

É melhor pesquisar os tipos de consultas mais comuns que acontecem em seu banco de dados e criar índices com base nessa pesquisa.

Por exemplo, se houver uma tabela que armazena acessos a sites, que são gravados com muita frequência, mas dificilmente lidos.Então não indexe a tabela.

Se, no entanto, você tiver uma lista de usuários que é acessada com mais frequência do que é gravada, primeiro eu criaria um índice clusterizado na coluna que é mais acessada, geralmente a chave primária.Eu criaria então um índice nas colunas de pesquisa comumente e naquelas que são usadas em ordem por cláusulas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top