sp_control_plan_guide (języka Transact-SQL)

Spadnie, włącza lub wyłącza przewodnik planu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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"
    Określa przewodnik planu zostanie usunięty, włączona lub wyłączona.plan_guide_namezostał rozwiązany w bieżącej bazie danych.Jeśli nie określono plan_guide_name Domyślna wartość NULL.

  • UPUŚĆ
    Krople przewodnik planu określone przez plan_guide_name.Po przerwaniu przewodnik planu przyszłych wykonania kwerendy wcześniej dopasowane przez przewodnik planu nie są zakłócone przez przewodnik planu.

  • USUWANIE WSZYSTKICH
    Wszystkie prowadnice plan spadnie w bieżącej bazie danych.**N'**plan_guide_name nie można określić podczas UPUSZCZANIA jest określona wartość ALL.

  • WYŁĄCZ
    Wyłącza przewodnik planu określone przez plan_guide_name.Po wyłączeniu przewodnik planu przyszłych wykonania kwerendy wcześniej dopasowane przez przewodnik planu nie są zakłócone przez przewodnik planu.

  • WYŁĄCZ WSZYSTKIE
    Wyłącza wszystkie prowadnice planu w bieżącej bazie danych.**N'**plan_guide_name nie można określić, kiedy Wyłącz wszystkie jest określony.

  • WŁĄCZ
    Umożliwia przewodnik planu określonej przez plan_guide_name.przewodnik planu można uzgodnić z kwerendy kwalifikujących się po jego włączeniu.Domyślnie linie pomocnicze planu są włączone w czas ich tworzenia.

  • WŁĄCZ WSZYSTKIE
    Włącza wszystkie prowadnice planu w bieżącej bazie danych.**N'plan_guide_name"**nie można określić, kiedy włączone jest określona wartość ALL.

Uwagi

Próby drop lub zmodyfikowania funkcja, procedura składowanalub wyzwalacza DML , który jest wywoływany przez przewodnik planu, włączony lub wyłączony, powoduje błąd.

Wyłączone przewodnik planu wyłączanie i włączanie włączone przewodnik planu nie ma wpływu i działającą bez błędów.

Można wykonać sp_control_plan_guide z PRZECIĄGANIA lub usuwanie wszystkich opcji w dowolnej wersji programu SQL Server; Jednakże wszystkie inne opcje są dostępne tylko w wersji Standard i Enterprise.

Uprawnienia

wykonaćsp_control_plan_guide na przewodnik planu typu obiektu (utworzony, określając @ Typ = 'obiektu' ) wymaga zmiany uprawnień dla obiektu, który jest wywoływany przez przewodnik planu. Plan inne prowadnice wymagają uprawnienia ZMIEŃ bazę danych.

Przykłady

A.Włączanie, wyłączanie i upuszczając przewodnik planu

Poniższy przykład tworzy przewodnik planu, wyłącza je, umożliwia on 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łączenie wszystkich prowadnic planu w bieżącej bazie danych

Następujący przykład wyłącza wszystkie prowadnice planu w AdventureWorks2008R2 bazy danych.

USE AdventureWorks2008R2;
GO
EXEC sp_control_plan_guide N'DISABLE ALL';