sp_control_plan_guide (Transact-SQL)

Spada, włącza lub wyłącza plan wykonania kwerendy.

Topic link iconKonwencje składni języka Transact-SQL

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