Eliminare una guida di pianoDelete a Plan Guide

È possibile eliminare una guida di piano in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.You can delete (drop) a plan guide in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Tramite Transact-SQLTransact-SQLè inoltre possibile eliminare tutte le guide di piano in un database.Using Transact-SQLTransact-SQL, you can also delete all of the plan guides in a database.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Sicurezza Security

Autorizzazioni Permissions

L'eliminazione di una guida di piano OBJECT richiede l'autorizzazione ALTER per l'oggetto (ad esempio funzione, stored procedure) a cui fa riferimento la guida di piano.Deleting an OBJECT plan guide requires ALTER permission on the object (for example: function, stored procedure) that is referenced by the plan guide. Per tutte le altre guide di piano è necessario disporre dell'autorizzazione ALTER DATABASE.All other plan guides require ALTER DATABASE permission.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per eliminare una guida di pianoTo delete a plan guide

  1. Fare clic sul segno più per espandere il database in cui si desidera eliminare una guida di piano, quindi fare clic sul segno più per espandere la cartella Programmabilità .Click the plus sign to expand the database in which you want to delete a plan guide, and then click the plus sign to expand the Programmability folder.

  2. Fare clic sul segno più per espandere la cartella Guide di piano .Click the plus sign to expand the Plan Guides folder.

  3. Fare clic con il pulsante destro del mouse sulla guida di piano da eliminare, quindi scegliere Elimina.Right-click the plan guide you want to delete and select Delete.

  4. Nella finestra di dialogo Elimina oggetto verificare che venga selezionata la guida di piano corretta, quindi fare clic su OK.In the Delete Object dialog box, ensure that the correct plan guide is selected and then click OK.

Utilizzo di Transact-SQL Using Transact-SQL

Per eliminare una singola guida di piano:To delete a single plan guide

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

    --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  
    

Per eliminare tutte le guide di piano in un databaseTo delete all plan guides in a database

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

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

    Per altre informazioni, vedere sp_control_plan_guide (Transact-SQL).For more information, see sp_control_plan_guide (Transact-SQL).