Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
È possibile eliminare una guida di piano in SQL Server usando SQL Server Management Studio o Transact-SQL. Con Transact-SQL è inoltre possibile eliminare tutte le guide di piano in un database.
Contenuto dell'articolo
Prima di iniziare:
Per eliminare una guida di piano, procedere utilizzando:
Prima di iniziare
Sicurezza
Autorizzazioni
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. Per tutte le altre guide di piano è necessario disporre dell'autorizzazione ALTER DATABASE.
Utilizzo di SQL Server Management Studio
Per eliminare una guida di piano
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à .
Fare clic sul segno più per espandere la cartella Guide di piano .
Fare clic con il pulsante destro del mouse sulla guida di piano da eliminare, quindi scegliere Elimina.
Nella finestra di dialogo Elimina oggetto verificare che venga selezionata la guida di piano corretta, quindi fare clic su OK.
Utilizzo di Transact-SQL
Per eliminare una singola guida di piano:
In Esplora oggetti, connettersi a un'istanza del Motore di Database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
--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 database
In Esplora oggetti, connettersi a un'istanza del Motore di Database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2022; GO EXEC sp_control_plan_guide N'DROP ALL'; GO
Per altre informazioni, vedere sp_control_plan_guide (Transact-SQL).