Abilitare o disabilitare una guida di piano
Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure
È possibile disabilitare e abilitare le guide di piano in SQL Server usando SQL Server Management Studio o Transact-SQL. È possibile abilitare o disabilitare una sola guida di piano o tutte le guide di piano in un database.
Contenuto dell'articolo
Prima di iniziare:
Per disabilitare e abilitare le guide di piano utilizzando:
Prima di iniziare
Limitazioni e restrizioni
Se si tenta di eliminare o modificare una funzione, una stored procedure o un trigger DML a cui viene fatto riferimento in una guida di piano abilitata o disabilitata, viene generato un errore. Verificare sempre le dipendenze prima di eliminare o modificare uno degli oggetti indicati sopra.
La disabilitazione di una guida di piano disabilitata o l'abilitazione di una guida di piano abilitata non ha alcun effetto e viene eseguita senza la restituzione di un errore.
Sicurezza
Autorizzazioni
La disabilitazione o l'abilitazione 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 disabilitare o abilitare una guida di piano
Fare clic sul segno più per espandere il database in cui si desidera disabilitare o abilitare 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 disabilitare o abilitare e scegliere Abilita o Disabilita.
Nella finestra di dialogo Disabilita guida di piano o Abilita guida di piano , verificare che l'azione scelta venga completata correttamente, quindi fare clic su Chiudi.
Per disabilitare o abilitare tutte le guide di piano in un database
Fare clic sul segno più per espandere il database in cui si desidera disabilitare o abilitare una guida di piano, quindi fare clic sul segno più per espandere la cartella Programmabilità .
Fare clic con il pulsante destro del mouse sulla cartella Guide di piano , quindi scegliere Abilita tutto o Disabilita tutto.
Nella finestra di dialogo Disabilita tutte le guide di piano o Abilita tutte le guide di piano , verificare che l'azione scelta venga completata correttamente, quindi fare clic su Chiudi.
Utilizzo di Transact-SQL
Per disabilitare o abilitare una 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''))'; --Disable the plan guide. EXEC sp_control_plan_guide N'DISABLE', N'Guide3'; GO --Enable the plan guide. EXEC sp_control_plan_guide N'ENABLE', N'Guide3'; GO
Per disabilitare o abilitare 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.
--Disable all plan guides in the database. EXEC sp_control_plan_guide N'DISABLE ALL'; GO --Enable all plan guides in the database. EXEC sp_control_plan_guide N'ENABLE ALL'; GO
Per altre informazioni, vedere sp_control_plan_guide (Transact-SQL).
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per