Włączanie lub wyłączanie Przewodnika planu
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Przewodniki dotyczące planu w programie SQL Server można wyłączyć i włączyć przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Pojedynczy przewodnik planu lub wszystkie przewodniki planu w bazie danych można włączyć lub wyłączyć.
w tym temacie
Przed rozpoczęciem:
Aby wyłączyć i włączyć przewodniki planu przy użyciu:
Przed rozpoczęciem
Ograniczenia i ograniczenia
Próba usunięcia lub zmodyfikowania funkcji, procedury składowanej lub wyzwalacza DML, do których odnosi się przewodnik planów, niezależnie od tego, czy jest włączony, czy wyłączony, powoduje błąd. Przed usunięciem lub zmodyfikowaniem dowolnych obiektów wymienionych powyżej należy zawsze sprawdzać zależności.
Wyłączenie przewodnika planu, który jest już wyłączony, lub włączenie przewodnika planu, który jest już włączony, nie ma żadnego efektu i przebiega bez błędu.
Bezpieczeństwo
Uprawnienia
Wyłączenie lub włączenie przewodnika planu OBIEKTU wymaga uprawnienia ALTER do obiektu (na przykład funkcji, procedury składowanej), do którego odnosi się przewodnik planu. Wszystkie inne przewodniki dotyczące planu wymagają uprawnienia ALTER DATABASE.
Korzystanie z programu SQL Server Management Studio
Wyłączanie lub włączanie przewodnika planu
Kliknij znak plus, aby rozwinąć bazę danych, w której chcesz wyłączyć lub włączyć poradnik planu, a następnie kliknij znak plus, aby rozwinąć folder Programmability.
Kliknij znak plusa, aby rozwinąć folder Przewodniki planowania.
Kliknij prawym przyciskiem myszy plan, który chcesz wyłączyć lub włączyć, i wybierz pozycję Wyłącz lub Włącz.
W oknie dialogowym Wyłącz przewodnik planu lub Włącz przewodnik planu sprawdź, czy wybrana akcja zakończyła się pomyślnie, a następnie kliknij Zamknij.
Aby wyłączyć lub włączyć wszystkie przewodniki planu w bazie danych
Kliknij znak plus, aby rozwinąć bazę danych, w której chcesz wyłączyć lub włączyć przewodnik planu, a następnie kliknij znak plus, aby rozwinąć folder Programmability.
Kliknij prawym przyciskiem myszy folder Przewodniki planu, a następnie wybierz opcję Włącz wszystkie lub Wyłącz wszystkie.
W oknie dialogowym Wyłącz wszystkie przewodniki planu lub Włącz wszystkie przewodniki planu, sprawdź, czy wybrana akcja zakończyła się pomyślnie, a następnie kliknij przycisk Zamknij.
Korzystanie z Transact-SQL
Aby wyłączyć lub włączyć przewodnik planu
W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku standardowym kliknij pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie kliknij pozycję Wykonaj.
--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
Aby wyłączyć lub włączyć wszystkie przewodniki planu w bazie danych
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku Standardowa kliknij pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie kliknij pozycję Wykonaj.
--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
Aby uzyskać więcej informacji, zobacz sp_control_plan_guide (Transact-SQL).