Como criar um guia de plano (SQL Server Management Studio)

Este tópico descreve como criar um guia de plano usando o SQL Server Management Studio. Os guias de plano influenciam a otimização de consultas, anexando dicas de consulta ou um plano de consulta fixo. No guia de plano, especifica-se a instrução Transact-SQL que se deseja otimizar e uma cláusula OPTION que contenha as dicas de consulta que se deseja usar ou um plano de consulta específico que se queira usar para otimizar a consulta. Quando a consulta é executada, o otimizador de consultas faz a correspondência da instrução do Transact-SQL com o guia de plano, anexando a cláusula OPTION à consulta em tempo de execução ou usando o plano de consulta especificado.

O exemplo a seguir cria um guia de plano para uma instrução do Transact-SQL e aplica a dica de consulta FORCESEEK à instrução. Essa dica de consulta força o otimizador a usar uma operação de busca de índice para acessar os dados na tabela especificada.

Para criar um exemplo de guia de plano

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados e, em seguida, expanda essa instância.

  2. Expanda Bancos de Dados, expanda o banco de dados do AdventureWorks2008R2 e, em seguida, expanda Programação.

  3. Clique com o botão direito em Guias de Plano e, em seguida, clique em Novo Guia de Plano.

  4. Em Nome, digite ForceseekPlan como nome do guia de plano.

  5. Em Instrução, digite a instrução do Transact-SQL a seguir. Essa é a instrução a qual o guia de plano deve ser aplicado.

    SELECT p.LastName, p.FirstName, HumanResources.Employee.JobTitle
    FROM HumanResources.Employee
    JOIN Person.Person AS p ON HumanResources.Employee.BusinessEntityID = p.BusinessEntityID
    WHERE HumanResources.Employee.OrganizationLevel = 3 ORDER BY p.LastName, p.FirstName
    
  6. Em Tipo de escopo, selecione SQL como tipo de entidade na qual a instrução do Transact-SQL será exibida.

  7. Em Dicas, digite a cláusula OPTION a seguir.

    OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))
    
  8. Para criar um guia de plano, clique em OK.

Para verificar se o guia de plano está sendo associado à consulta

  1. Inicie um rastreamento do SQL Server Profiler, certificando-se de que os tipos de eventos Guia de Plano Bem-Sucedido e Guia de Plano Malsucedido estão selecionados (localizado no nó Desempenho).

  2. Execute a consulta fornecida na etapa 5 do procedimento anterior.

  3. Pause o rastreamento do SQL Server Profiler.

  4. Localize o evento Guia de Plano Bem-Sucedido para a consulta afetada.

  5. Se o guia de plano não pôde ser correspondido à consulta, certifique-se de que a consulta tenha sido fornecida no mesmo formato, caractere por caractere, conforme especificado na instrução do guia de plano. Isto inclui guias, espaços, retornos de carro ou alimentações de linha.