Compartilhar via


Comparar planos de execução

Aplica-se a:SQL Server

Este artigo descreve como comparar semelhanças e diferenças entre planos de execução gráfica reais usando o recurso comparação de planos do SQL Server Management Studio. Esse recurso está disponível no SQL Server Management Studio versão 16 ou posterior.

Observação

Os planos de execução reais são gerados depois que as consultas ou lotes Transact-SQL são executados. Por isso, um plano de execução real contém informações de runtime, como número real de linhas, métricas de uso de recursos e avisos de runtime (se houver). Para obter mais informações, consulte Exibir um plano de execução real.

A capacidade de comparar planos é algo que os profissionais de banco de dados podem ter que fazer por motivos de solução de problemas:

  • Saiba por que uma consulta ou lote de repente fica lento.
  • Entenda o efeito de uma reescrita de consulta.
  • Observe como uma alteração de aprimoramento de desempenho específica introduzida no design de esquema (como um novo índice) mudou efetivamente o plano de execução.

A opção de menu Comparação de Planos permite a comparação lado a lado de dois planos de execução diferentes, para facilitar a identificação de semelhanças e alterações que explicam os diferentes comportamentos por todos os motivos indicados anteriormente. Essa opção pode comparar entre:

  • Dois arquivos de plano de execução (extensão sqlplan) salvos anteriormente.
  • Um plano de execução ativo um plano de execução de consulta salvo anteriormente.
  • Dois planos de consulta selecionados em Repositório de Consultas.

Dica

A Comparação de Plano funciona com qualquer arquivo .sqlplan, até mesmo de versões mais antigas do SQL Server. Além disso, essa opção permite comparação offline, portanto, não é necessário estar conectado a uma instância do SQL Server.

Quando dois planos de execução são comparados, regiões do plano que fazem essencialmente a mesma ação são realçadas na mesma cor e padrão. Selecionar uma região colorida em um plano centralizará o outro plano no nó correspondente nesse plano. Você ainda pode comparar operadores não correspondentes e nós dos planos de execução, porém, nesse caso, deverá selecionar manualmente os operadores a serem comparados.

Importante

Somente nós considerados como alterando a forma do plano são usados para verificar se há semelhanças. Portanto, pode haver um nó que não seja colorido, no meio de dois nós que estão na mesma subseção do plano. A falta de cor nesse caso implica que os nós não foram considerados ao verificar se as seções são iguais.

Comparar planos de execução

  1. Abra um arquivo de plano de execução de consulta salvo anteriormente (.sqlplan) usando o menu Arquivo e selecionando em Abrir Arquivo ou arraste um arquivo de plano para a janela do Management Studio. Como alternativa, se você tiver acabado de executar uma consulta e optar por exibir seu plano de execução, vá para a guia Plano de Execução guia no painel de resultados.

  2. Clique com o botão direito do mouse em uma área em branco do plano de execução e selecione Comparar Plano de Execução.

    Captura de tela do botão direito do mouse em Comparar Plano de Execução.

  3. Escolha o segundo arquivo de plano de consulta com o qual você deseja comparar. O segundo arquivo é aberto para que você possa comparar os planos.

  4. Os planos comparados abrem uma nova janela, por padrão, com uma na parte superior e outra na parte inferior. A seleção padrão é a primeira ocorrência de um operador ou nó que é comum nos planos comparados, mas mostrando diferenças entre os planos. Todos os operadores e nós realçados existem em ambos os planos comparados. Selecionar um operador realçado nos planos superior ou esquerdo seleciona automaticamente o operador correspondente nos planos inferior ou direito. Selecionar o operador de nó raiz em qualquer um dos planos comparados (o SELECT nó na imagem a seguir) também seleciona o respectivo operador de nó raiz no outro plano comparado.

    Captura de tela da comparação de plano de dois arquivos de plano salvos.

    Dica

    Você pode alternar a exibição da comparação de plano de execução para lado a lado clicando com o botão direito do mouse em uma área em branco do plano de execução e selecionando Alternar Orientação do Divisor.

    Todas as opções de zoom e navegação disponíveis para planos de execução funcionam no modo de comparação do plano. Para obter mais informações, consulte Exibir um plano de execução real.

  5. Também é aberta uma janela Propriedades dupla à direita no escopo da seleção padrão. As propriedades que existem em ambos os operadores comparados, mas têm diferenças, são precedidas pelo sinal não igual (≠) para facilitar a identificação.

    Captura de tela da janela Propriedades duplas.

  6. A janela de navegação de comparação Análise de Plano de Execução também abre na parte inferior. Há três guias disponíveis:

    1. Na guia Opções da Instrução, a seleção padrão é Realçar operações semelhantes e o mesmo operador ou nó realçado em planos comparados compartilham o mesmo padrão de cor e linha. Navegue entre áreas semelhantes em planos comparados selecionando em um padrão de limão. Você também pode optar por realçar as diferenças entre os planos, em vez das semelhanças, selecionando Realçar operações que não correspondem aos segmentos semelhantes.

      Observação

      Por padrão, os nomes de banco de dados são ignorados ao comparar planos para permitir a comparação de planos capturados para bancos de dados que têm nomes diferentes, mas compartilham o mesmo esquema. Por exemplo, ao comparar planos de bancos ProdDB de dados e TestDB. Esse comportamento pode ser alterado com a opção Ignorar nome do banco de dados ao comparar operadores.

      Captura de tela da janela Análise do Plano de Execução.

    2. A guia Várias Instruções é útil ao comparar planos com várias instruções, permitindo que o par de instruções certo seja comparado.

      Captura de tela de várias instruções no plano comparado.

    3. Na guia Cenários , você pode encontrar uma análise automatizada de alguns dos aspectos mais relevantes a serem verificados no que se relaciona com as diferenças de Estimativa de Cardinalidade (SQL Server) em planos comparados. Para cada operador listado no painel esquerdo, o painel direito mostra detalhes sobre o cenário no Select aqui para obter mais informações sobre esse link de cenário e possíveis motivos para explicar que o cenário está listado.

      Captura de tela de diferentes linhas estimadas.

    Se essa janela estiver fechada, clique com o botão direito do mouse em uma área em branco de um plano comparado e selecione Opções de Comparação do Plano de Execução para reabrir.

    Captura de tela das opções de comparação de plano.

Comparar planos de execução no Repositório de Consultas

  1. No Repositório de Consultas, identifique uma consulta que tenha mais de um plano de execução. Para obter mais informações sobre cenários do Repositório de Consultas, confira Cenários de uso do Repositório de Consultas.

  2. Use uma combinação da tecla Shift e do mouse para selecionar dois planos para a mesma consulta.

    Captura de tela de Selecionar dois planos no Repositório de Consultas.

  3. Use o botão Comparar planos para a consulta de seleção em uma janela separada para iniciar a comparação de planos. Em seguida, as etapas 4 a 6 Para comparar os planos de execução são aplicáveis.

    Captura de tela do Compare Showplan no Repositório de Consultas.