Criar um novo guia de plano
Você pode criar um guia de plano no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Guias de plano influenciam a otimização de consulta, anexando a elas 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 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.
Neste tópico
Antes de começar:
Limitações e restrições
Segurança
Para criar um guia de plano, usando:
SQL Server Management Studio
Transact-SQL
Antes de começar
Limitações e restrições
Os argumentos para sp_create_plan_guide devem ser fornecidos na ordem em que aparecem. Quando você aplica valores para os parâmetros de sp_create_plan_guide, todos os nomes de parâmetros devem ser especificados explicitamente ou nenhum deles deve ser especificado. Por exemplo, se @name = for especificado, @stmt =, @type =, entre outros, também deverão ser. Da mesma forma, se @name = for omitido e apenas o valor de parâmetro for fornecido, os nomes de parâmetro restantes deverão ser omitidos também e apenas os seus valores, fornecidos. Os nomes de argumento são usados apenas para fins descritivos, para ajudar compreender a sintaxe. O SQL Server não verifica se o nome de 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. Porém, só um guia de plano pode ser ativado em um determinado momento.
Os guias de plano OBJECT não podem ser criados para um valor @module\_or\_batch que mencione um procedimento armazenado, função ou gatilho DML que especifique a cláusula WITH ENCRYPTION ou que seja temporário.
A tentativa de descartar ou modificar uma função, procedimento armazenado ou gatilho DML mencionado por um guia de plano, esteja ele habilitado ou não, causa um erro. A tentativa de descartar uma tabela com um gatilho definido nela que é mencionado por um guia de plano também causa um erro.
Segurança
Permissões
A criação de um guia de plano do tipo OBJECT requer a permissão ALTER no objeto mencionado. A criação de um guia de plano do tipo SQL ou TEMPLATE requer a permissão ALTER no banco de dados atual.
[Início]
Usando o SQL Server Management Studio
Para criar um guia de plano
Clique no sinal de adição para expandir o banco de dados no qual você deseja criar um guia de plano e clique no sinal de adição para expandir a pasta Programação.
Clique com o botão direito do mouse na pasta Guias de Plano e selecione Novo Guia de Plano….
Na caixa de diálogo Novo Guia de Plano, na caixa Nome, digite o nome do guia de plano.
Na caixa Instrução, insira a instrução Transact-SQL à qual o guia de plano deve ser aplicado.
Na lista Tipo de escopo, selecione o tipo de entidade na qual a instrução Transact-SQL aparece. Isso especifica o contexto para se fazer a correspondência da instrução Transact-SQL ao guia de plano. Os valores possíveis são OBJECT, SQL e TEMPLATE.
Na caixa Lote de escopo, digite o texto de lote no qual a instrução Transact-SQL aparece. O texto de lote não pode incluir uma instrução USE database. A caixa Lote de escopo está disponível apenas quando SQL é selecionado como um tipo de escopo. Se nada for inserido na caixa de lote de escopo quando o SQL for o tipo de escopo, o valor do texto de lote será definido com o mesmo valor que a caixa Instrução.
Na lista Nome do esquema de escopo, digite o nome do esquema no qual o objeto está contido. A caixa Nome do esquema de escopo está disponível apenas quando Objeto é selecionado como um tipo de escopo.
Na caixa Nome do objeto de escopo for, digite o nome do procedimento armazenado Transact-SQL, função escalar definida pelo usuário, função com valor de tabela de várias instruções ou gatilho DML no qual a instrução Transact-SQL aparece. A caixa Nome do objeto de escopo está disponível apenas quando Objeto é selecionado como um tipo de escopo.
Na caixa Parâmetros, digite o nome do parâmetro e os tipos de dados de todos os parâmetros inseridos na instrução Transact-SQL.
Parâmetros são aplicados somente quando uma das seguintes condições for verdadeira:
O tipo de escopo é SQL ou TEMPLATE. No caso de TEMPLATE, parâmetros não devem ser NULL.
A instrução Transact-SQL é enviada usando-se 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 Dicas, digite as dicas de consulta ou o plano de consulta a ser aplicado à instrução Transact-SQL. Para especificar uma ou mais dicas de consulta, digite uma cláusula OPTION válida.
Clique em OK.
[Início]
Usando Transact-SQL
Para criar um guia de plano
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).
[Início]