Como resolver consultas de execução lenta em SQL Server 7.0 ou em versões posteriores

Traduções de Artigos Traduções de Artigos
Artigo: 243589 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como processar um problema de desempenho que as aplicações poderão em conjunto com o Microsoft SQL Server: diminuir o desempenho de uma consulta específica ou um grupo de consultas. Se estiver a resolver um problema de desempenho, mas não isolou o problema para uma consulta específica ou um pequeno grupo de consultas que executam um desempenho mais lento do que o esperado, consulte o artigo seguinte na Microsoft Knowledge Base antes de continuar:
224587COMO: Resolver problemas de desempenho de aplicações com o SQL Server
Este artigo é baseado no pressuposto de que utilizou o artigo 224587 para restringir o âmbito do problema e capturadas um rastreamento SQL Profiler com as colunas de eventos e dados específicos descritas no artigo 224587.

Optimizar consultas de base de dados pode ser um empreendimento multi-faceted. As secções seguintes descrevem itens comuns para examinar quando está a investigar desempenho das consultas.

Nota Se estiver a utilizar o SQL Server 2005, utilize o SQL Server Management Studio em vez de SQL Query Analyzer e utilize optimização classificação do motor da base de dados em vez do Assistente de optimização de índice remissivo.

Verificar a existência de índices correctos

Uma das verificações primeira para executar quando ocorrerem tempos de execução de consulta lenta é uma análise de índice. Se está a investigar uma única consulta, pode utilizar a opção Executar a análise de índice remissivo no SQL Query Analyzer; se tiver um rastreamento SQL Profiler de uma grande carga de trabalho, pode utilizar o Assistente de optimização de índice. Ambos os métodos utilizam o Optimizador de consultas do SQL Server para determinar os índices seria útil para as consultas especificadas. Este é um método muito eficaz para determinar se os índices correctos existem na base de dados.

Para obter informações sobre como utilizar o Assistente de optimização índice, consulte o tópico "Assistente de optimização de índice remissivo" no SQL Server 7.0 Books Online.

Se tiver actualizado a aplicação de uma versão anterior do SQL Server, índices diferentes poderão ser mais eficientes no SQL Server 7.0 devido a optimização e alterações do motor de armazenamento. O Assistente de optimização índice ajuda-o a determinar se uma alteração na indexação estratégia vai melhorar o desempenho.

Para obter mais informações sobre como utilizar a optimização classificação do motor da base de dados em vez do Assistente de optimização de índice remissivo no SQL Server 2005, consulte os seguintes tópicos no SQL Server 2005 Books Online:
  • Diferenças entre a base de dados classificação optimização do motor e indexar o Assistente de optimização
  • Iniciação de classificação de optimização do motor de base de dados

Remover todas as consultas, tabela e sugestões para a associação

Sugestões para substituem optimização de consulta e podem impedir o Optimizador de consultas de escolher o plano de execução mais rápido. Devido às alterações optimizador, sugestões que um desempenho melhorado em versões anteriores do SQL Server poderá ter efeito ou realmente negativamente poderá afectam o desempenho no SQL Server 7.0. Além disso, as sugestões de associação podem provocar degradação do desempenho com base nas seguintes razões:
  • Sugestões para a associação evita que uma consulta ad hoc sejam elegíveis para parameterization automática e colocar em cache o plano de consulta.
  • Quando utiliza uma sugestão de associação, implica que pretende forçar a ordem de associação para todas as tabelas na consulta, mesmo que essas associações não utilizam explicitamente uma sugestão.
Se a consulta estiver a analisar inclui quaisquer sugestões, removê-los e, em seguida, reavaliar o desempenho.

Examine o plano de execução

Depois de confirmar os índices correctos existem e que não sugestões são restringir capacidade o optimizador para gerar um plano eficaz, pode examinar o plano de execução de consulta. Pode utilizar qualquer um dos seguintes métodos para visualizar o plano de execução de uma consulta:
  • SQL Profiler

    Se capturar o evento MISC:Execution plano SQL Profiler, irá ocorrer imediatamente antes do evento StmtCompleted para a consulta para o processo de determinado sistema ID (SPID).
  • SQL Query Analyzer: gráfico Showplan

    Com a consulta seleccionada na janela consulta, faça clique sobre o menu de consulta e, em seguida, faça clique sobre Mostrar estimada execução planear .

    Nota : Se o procedimento armazenado ou batch cria e faz referência a tabelas temporárias, tem de utilizar uma instrução SET perfil STATISTICS ON ou criar explicitamente tabelas temporárias antes de apresentar o plano de execução.
  • SHOWPLAN_ALL e SHOWPLAN_TEXT

    Para receber uma versão de texto do plano de execução estimado, pode utilizar as opções SHOWPLAN_ALL SET e SET SHOWPLAN_TEXT. Consulte o "SET SHOWPLAN_ALL (T-SQL)" e "SET SHOWPLAN_TEXT (T-SQL)" tópicos no SQL Server 7.0 Books Online para obter mais detalhes.

    Nota : Se o procedimento armazenado ou batch cria e faz referência a tabelas temporárias, tem de utilizar a opção de SET perfil STATISTICS ON ou criar tabelas temporárias explicitamente antes de apresentar o plano de execução.
  • perfil STATISTICS

    Quando o plano de execução estimado, está a visualizar graficamente ou utilizando SHOWPLAN, a consulta não é realmente executada. Por conseguinte, se criar tabelas temporárias uma secção ou um procedimento armazenado, não consegue apresentar os planos de execução estimado porque as tabelas temporárias não existe. PERFIL STATISTICS executa a consulta primeiro e, em seguida, apresenta o plano de execução real. Consulte o tópico "SET STATISTICS perfil (T-SQL)" no SQL Server 7.0 Books Online para obter mais detalhes. Quando está em execução no SQL Query Analyzer, esta aparece no formato de gráfico no separador Plano de execução no painel de resultados.
Para mais informações sobre como visualizar o plano de execução estimado no SQL Server 2005, consulte o tópico "Como apresentar o plano de execução estimado" no SQL Server 2005 Books Online.

Examine a saída Showplan

Saída showplan fornece muitas informações sobre o plano de execução do SQL Server está a utilizar para uma determinada consulta. Os detalhes de informações e eventos que são gerados são explicados detalhadamente no capítulo "Optimizar o desempenho de base de dados" do SQL Server 7.0 Books Online. Seguem-se alguns aspectos básicos do plano de execução que pode ver para determinar se está a utilizar o melhor plano:
  • Corrigir a utilização de índice remissivo

    O resultado showplan apresenta cada tabela que está envolvida na consulta e o caminho de acesso que é utilizado para obter dados a partir do mesmo. Com gráfico showplan, mova o ponteiro sobre uma tabela para ver os detalhes para cada tabela. Se um índice estiver em utilização, consulte "Procurar índice"; Se um índice não estiver em utilização, consulte o "Tabela procurar" uma pilha ou "Agrupado índice procurar" uma tabela que tenha um índice agrupado. "Verificação de índice agrupada" indica que a tabela está a ser pesquisada através de índice agrupado, não o índice clusterizado a ser utilizado para directamente acesso linhas individuais.

    Se determinar que existe um índice úteis e não está a ser utilizado para a consulta, pode tentar forçar o índice utilizando uma sugestão de índice. Consulte o tópico "FROM (T-SQL)" no SQL Server Books Online para obter mais detalhes sobre as sugestões de índice.
  • Corrigir associação encomenda

    A saída showplan indica por que ordem tabelas que estão envolvidas numa consulta que está a ser associadas. Para associações de ciclo aninhado, a tabela superior que está listada é a tabela externa e deve ser o mais pequeno de duas tabelas. Para associações de hash, a tabela superior torna-se a entrada da compilação e também deve ser o mais pequeno de duas tabelas. No entanto, note que a ordem é menos crítica uma vez que o processador de consultas pode inverter a compilação e pesquisar entradas em tempo de execução se detectar que o optimizador efectuadas uma decisão errada. Pode determinar qual a tabela devolve menos linhas verificando que calcula o número de linha na saída showplan.

    Se determinar que a consulta pode beneficiar de uma ordem de associação diferentes, pode tentar forçar a ordem de associação com uma sugestão de associação. Consulte o tópico "FROM (T-SQL)" no SQL Server 7.0 Books Online para obter mais detalhes sobre sugestões para a associação.

    Nota : utilizar uma sugestão de associação na consulta volumosos implicitamente força a ordem de associação para a outras tabelas na consulta como se FORCEPLAN foi definido.
  • Tipo de associação correcta

    SQL Server utiliza ciclo aninhado, hash, e adere a impressão em série. Se uma consulta de desempenho lento estiver a utilizar uma técnica de associação através de outro, pode tentar forçar um tipo de associação diferente. Por exemplo, se uma consulta estiver a utilizar uma associação de hash, pode forçar uma associação de ciclos aninhados, utilizando a sugestão de associação de LOOP. Consulte o tópico "FROM (T-SQL)" no SQL Server 7.0 Books Online para obter mais detalhes sobre sugestões para a associação.

    Nota : utilizar uma sugestão de associação na consulta volumosos implicitamente força o tipo de associação para a outras tabelas na consulta como se FORCEPLAN foi definido.
  • Execução paralela

    Se estiver a utilizar um computador com múltiplos processadores, pode também investigar se um plano paralelo está em utilização. Se parallelism está a ser utilizado, verá um evento PARALLELISM (recolher sequências). Se uma determinada consulta é lenta quando está a utilizar um plano paralelo, pode tentar forçar um plano paralelo não utilizando a dica OPTION (MAXDOP 1). Consulte o tópico "SELECT (T-SQL)" no SQL Server 7.0 Books Online para obter mais detalhes.
Para obter mais informações sobre como utilizar a saída de plano de execução Showplan no SQL Server 2005, consulte os seguintes tópicos no SQL Server 2005 Books Online:
  • Como guardar um plano de execução no formato XML
  • Showplans XML
  • Segurança showplan
atenção : uma vez que o Optimizador de consultas selecciona normalmente o melhor plano de execução de uma consulta, a Microsoft recomenda que utilize as sugestões de associação, sugestões para a consulta e sugestões para a tabela apenas como último recurso e apenas se estiver uma administradores experientes base de dados.

Referências

Os seguintes tópicos no SQL Server 7.0 Books Online fornecem informações sobre optimização de consultas:
  • "Optimizar o desempenho de aplicações utilizando a obtenção de dados eficaz"
  • "Consulta optimização"
  • "Consulta recomendações optimização"
  • "O transact-SQL sugestões"

Propriedades

Artigo: 243589 - Última revisão: 15 de dezembro de 2005 - Revisão: 5.4
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbmt kbhowtomaster KB243589 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 243589

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com