Excluir um guia de plano

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Você pode excluir (descartar) um guia de plano no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Usando Transact-SQL, você também pode excluir todos os guias de plano de um banco de dados.

Neste tópico

Antes de começar

Segurança

Permissões

A exclusão de um guia de plano OBJECT exige a permissão ALTER no objeto (por exemplo: função, procedimento armazenado) que é referenciado pelo guia de plano. Todos os outros guias de plano requerem permissão ALTER DATABASE.

Como usar o SQL Server Management Studio.

Para excluir um guia de plano

  1. Clique no sinal de adição para expandir o banco de dados no qual você deseja excluir um guia de plano e clique no sinal de adição para expandir a pasta Programação .

  2. Clique no sinal de adição para expandir a pasta Guias de Plano .

  3. Clique com o botão direito do mouse no guia de plano a ser excluído e selecione Excluir.

  4. Na caixa de diálogo Excluir Objeto , verifique se o guia de plano correto está selecionado e clique em OK.

Usando o Transact-SQL

Para excluir um único guia de plano

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    --Create a procedure on which to define the plan guide.  
    IF OBJECT_ID(N'Sales.GetSalesOrderByCountry', N'P') IS NOT NULL  
        DROP PROCEDURE Sales.GetSalesOrderByCountry;  
    GO  
    CREATE PROCEDURE Sales.GetSalesOrderByCountry   
        (@Country nvarchar(60))  
    AS  
    BEGIN  
        SELECT *  
        FROM Sales.SalesOrderHeader AS h   
        INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID  
        INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID  
        WHERE t.CountryRegionCode = @Country;  
    END  
    GO  
    --Create the plan guide.  
    EXEC sp_create_plan_guide N'Guide3',  
        N'SELECT *  
        FROM Sales.SalesOrderHeader AS h   
        INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID  
        INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID  
        WHERE t.CountryRegionCode = @Country',  
        N'OBJECT',  
        N'Sales.GetSalesOrderByCountry',  
        NULL,  
        N'OPTION (OPTIMIZE FOR (@Country = N''US''))';  
    GO  
    --Drop the plan guide.  
    EXEC sp_control_plan_guide N'DROP', N'Guide3';  
    GO  
    

Para excluir todas as guias de plano de um banco de dados.

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    USE AdventureWorks2022;  
    GO  
    EXEC sp_control_plan_guide N'DROP ALL';  
    GO  
    

Para obter mais informações, veja sp_control_plan_guide (Transact-SQL).