Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Os guias de planos influenciam a otimização de consultas anexando dicas de consulta ou um plano fixo de consulta. No guia de plano, você especifica a instrução que deseja otimizar e uma cláusula OPTION que contém dicas de consulta que deseja usar. ou um plano de consulta específico que você deseja usar para otimizar a consulta. Quando a consulta é executada, o otimizador de consultas corresponde a instrução Transact-SQL com o guia de plano e anexa a cláusula OPTION à consulta no momento da execução ou usa o plano de consulta especificado.
Um Plan Guide aplica um plano de consulta fixo ou dicas de consulta, ou ambos, a uma consulta.
Limitações e restrições
Os argumentos a sp_create_plan_guide devem ser apresentados pela ordem apresentada. Quando se fornecem valores para os parâmetros de sp_create_plan_guide, todos os nomes dos parâmetros devem ser especificados explicitamente ou então nenhum. Por exemplo, se @name = for especificado, então @stmt = , @type =, e assim por diante, também deve ser especificado. Da mesma forma, se @name = for omitido e apenas o valor do parâmetro for fornecido, os nomes de parâmetros restantes também deverão ser omitidos, e apenas seus valores fornecidos. Os nomes dos argumentos são apenas para fins descritivos, para ajudar a entender a sintaxe. O SQL Server não verifica se o nome do parâmetro especificado corresponde ao nome do parâmetro na posição em que o nome é usado.
Você pode criar mais de um guia de plano OBJECT ou SQL para a mesma consulta e lote ou módulo. No entanto, apenas um guia de planos pode ser ativado a qualquer momento.
As guias de plano do tipo OBJECT não podem ser criadas para um valor @module_or_batch que faça referência a um procedimento armazenado, função ou gatilho DML que especifique a cláusula WITH ENCRYPTION ou que seja temporário.
Tentar remover ou modificar uma função, procedimento armazenado ou gatilho DML referenciado por um guia de plano, seja ele habilitado ou desativado, resulta num erro. Tentar eliminar uma tabela que tenha um gatilho definido nela e que seja referenciado por um guia de plano também causará um erro.
Permissões
Para criar um guia de plano do tipo OBJECT, você precisa da permissão ALTER no objeto referenciado. Para criar um guia de plano do tipo SQL ou TEMPLATE, você precisa da permissão ALTER no banco de dados atual.
Criar um guia de plano usando o SSMS
Clique no sinal de mais para expandir a base de dados na qual deseja criar um guia de plano e, em seguida, clique no sinal de mais para expandir a pasta Programação.
Clique com o botão direito do rato na pasta Guia de Planos e selecione Novo Guia de Plano....

Na caixa de diálogo Novo Guia do Plano, na caixa Nome, digite o nome do guia do plano.
Na caixa Declaração , insira a declaração Transact-SQL para a qual o guia do plano deve ser aplicado.
Na lista do tipo de escopo , selecione o tipo de entidade na qual a instrução Transact-SQL aparece. Isso especifica o contexto para fazer a correspondência entre a instrução Transact-SQL e o guia do plano. Os valores possíveis são OBJECT, SQLe TEMPLATE.
Na caixa do lote do âmbito, insira o texto do lote no qual a declaração Transact-SQL aparece. O texto em lote não pode incluir uma instrução de banco de dados
USE. A caixa em lote Escopo só está disponível quando SQL é selecionado como um tipo de escopo. Se nada for inserido na caixa do lote de escopo quando SQL for o tipo de escopo, então o valor do texto do lote é definido para o mesmo valor que está na caixa Instrução.Na lista nome do esquema escopo, insira o nome do esquema no qual o objeto está contido. A caixa de nome do esquema de escopo só está disponível quando o objeto é selecionado como tipo de âmbito.
Na caixa de nome do objeto de Escopo , digite o nome do procedimento armazenado Transact-SQL, função escalar definida pelo utilizador, função de tabela de várias instruções, ou trigger DML na qual a instrução Transact-SQL aparece. A caixa de nome do objeto escopo só está disponível quando objeto é selecionado como tipo de escopo.
Na caixa Parâmetros, insira o nome e o tipo de dados de todos os parâmetros incorporados na instrução Transact-SQL.
Os parâmetros aplicam-se somente quando uma das seguintes opções for verdadeira:
O tipo de escopo é SQL ou TEMPLATE. Se TEMPLATE, os parâmetros não devem ser NULL.
A instrução Transact-SQL é enviada usando sp_executesql e um valor para o parâmetro é especificado, ou o SQL Server envia internamente uma instrução depois de parametrizá-la.
Na caixa de Dicas , insira as dicas ou planos de consulta a aplicar à instrução Transact-SQL. Para especificar uma ou mais dicas de consulta, insira uma cláusula OPTION válida.
Clique OK.
Criar um guia de plano usando T-SQL
No Pesquisador de Objetos , conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.
-- creates a plan guide named Guide1 based on a SQL statement EXEC sp_create_plan_guide @name = N'Guide1', @stmt = N'SELECT TOP 1 * FROM Sales.SalesOrderHeader ORDER BY OrderDate DESC', @type = N'SQL', @module_or_batch = NULL, @params = NULL, @hints = N'OPTION (MAXDOP 1)';
Para obter mais informações, consulte sp_create_plan_guide (Transact-SQL).