sp_control_plan_guide (Transact-SQL)
Spada, włącza lub wyłącza plan wykonania kwerendy.
sp_control_plan_guide [ @operation = ] N'<control_option>'
[ , [ @name = ] N'plan_guide_name' ]
<control_option>::=
{
DROP
| DROP ALL
| DISABLE
| DISABLE ALL
| ENABLE
| ENABLE ALL
}
Argumenty
N 'plan_guide_name'
Specifies the plan guide that is being dropped, enabled, or disabled.plan_guide_name is resolved to the current database.Jeśli nie zostanie określona, plan_guide_name wartością domyślną jest NULL.UPUŚĆ
Krople plan wykonania kwerendy wg plan_guide_name. Po upuszczeniu plan wykonania kwerendy wykonania przyszłych wcześniej dopasowane przez plan wykonania kwerendy kwerendy nie wpływało plan wykonania kwerendy.USUWANIE WSZYSTKICH
Wszystkie linie planu spadnie w bieżącej bazie danych.**N '**plan_guide_name nie można określić, gdy określono DROP ALL.WYŁĄCZANIE
Wyłącza plan wykonania kwerendy wg plan_guide_name. Po wyłączeniu plan wykonania kwerendy wykonania przyszłych wcześniej dopasowane przez plan wykonania kwerendy kwerendy nie wpływało plan wykonania kwerendy.WYŁĄCZ WSZYSTKIE
Wyłącza wszystkie prowadnice planu w bieżącej bazie danych.**N '**plan_guide_name nie można określić, gdy określona jest wyłączona wszystkie.WŁĄCZANIE
Włącza plan wykonania kwerendy wg plan_guide_name. plan wykonania kwerendy można uzgodnić z kwerendą kwalifikujących się po jego włączeniu.Domyślnie plan prowadnice są włączane w momencie ich tworzenia.WŁĄCZ WSZYSTKIE
Włącza wszystkie prowadnice planu w bieżącej bazie danych.**N 'plan_guide_name"**nie można określić, gdy określono ENABLE ALL.
Remarks
Próbujesz usunąć lub zmodyfikować funkcja, procedura przechowywana lub wyzwalacz DML, do której odwołuje się plan wykonania kwerendy, albo włączony lub wyłączony, spowoduje wystąpienie błędu.
Wyłączone plan wykonania kwerendy wyłączanie i włączanie przewodnik włączonych plan wykonania kwerendy nie działa i jest uruchamiany bez błędów.
Istnieje możliwość wykonać sp_control_plan_guide DROP lub DROP wszystkich opcji w dowolnej wersji SQL Server; Jednak inne opcje są dostępne tylko w wersji Standard i Enterprise.
Uprawnienia
To execute sp_control_plan_guide on a plan guide of type OBJECT (created specifying @type ='OBJECT' ) requires ALTER permission on the object that is referenced by the plan guide.Wszystkie inne prowadnice planu wymagają uprawnienia ALTER DATABASE.
Przykłady
A.Włączanie, wyłączanie i upuszczając plan wykonania kwerendy
W następującym przykładzie powoduje utworzenie plan wykonania kwerendy, wyłącza je, umożliwia jej i obniży się go.
--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
--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
--Drop the plan guide.
EXEC sp_control_plan_guide N'DROP', N'Guide3';
B.Wyłączanie wszystkich prowadnic planu w bieżącej bazie danych
Następujący przykład wyłącza wszystkie prowadnice planu w AdventureWorks Baza danych.
USE AdventureWorks;
GO
EXEC sp_control_plan_guide N'DISABLE ALL';