sp_control_plan_guide (Transact-sql)sp_control_plan_guide (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) 適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions)

プランガイドを削除するか、有効または無効にします。Drops, enables, or disables a plan guide.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
sp_control_plan_guide [ @operation = ] N'<control_option>'  
  [ , [ @name = ] N'plan_guide_name' ]  
  
<control_option>::=  
{   
    DROP   
  | DROP ALL  
  | DISABLE  
  | DISABLE ALL  
  | ENABLE   
  | ENABLE ALL  
}  

引数Arguments

N ' plan_guide_name 'N' plan_guide_name '
削除するか、有効または無効にするプラン ガイドを指定します。Specifies the plan guide that is being dropped, enabled, or disabled. 現在のデータベースに対してplan_guide_nameが解決されます。plan_guide_name is resolved to the current database. 指定しない場合、 plan_guide_name 既定値は NULL です。If not specified, plan_guide_name defaults to NULL.

DROPDROP
Plan_guide_nameによって指定されたプランガイドを削除します。Drops the plan guide specified by plan_guide_name. プランガイドが削除された後、プランガイドによって以前一致したクエリの今後の実行は、プランガイドの影響を受けません。After a plan guide is dropped, future executions of a query formerly matched by the plan guide are not influenced by the plan guide.

DROP ALLDROP ALL
現在のデータベースのすべてのプラン ガイドを削除します。Drops all plan guides in the current database. DROP ALL が指定されている場合、 N '_plan_guide_name_を指定することはできません。N'plan_guide_name cannot be specified when DROP ALL is specified.

DISABLEDISABLE
Plan_guide_nameによって指定されたプランガイドを無効にします。Disables the plan guide specified by plan_guide_name. プラン ガイドが無効になった後は、そのプラン ガイドに以前一致していたクエリを実行しても、そのプラン ガイドによる影響は受けません。After a plan guide is disabled, future executions of a query formerly matched by the plan guide are not influenced by the plan guide.

DISABLE ALLDISABLE ALL
現在のデータベース内のすべてのプランガイドを無効にします。Disables all plan guides in the current database. N 'PLAN_GUIDE_NAME は、DISABLE ALL が指定されている場合は指定できません。N'plan_guide_name cannot be specified when DISABLE ALL is specified.

有効化ENABLE
Plan_guide_nameによって指定されたプランガイドを有効にします。Enables the plan guide specified by plan_guide_name. プラン ガイドが有効になった後は、そのプラン ガイドを適切なクエリと照合できます。A plan guide can be matched with an eligible query after it is enabled. 既定では、プランガイドは作成時に有効になります。By default, plan guides are enabled at the time they are created.

ENABLE ALLENABLE ALL
現在のデータベース内のすべてのプランガイドを有効にします。Enables all plan guides in the current database. ENABLE ALL が指定されている場合、 N 'plan_guide_name' を指定することはできません。N'plan_guide_name' cannot be specified when ENABLE ALL is specified.

解説Remarks

有効、無効にする場合のどちらでも、そのプラン ガイドで参照されている関数、ストアド プロシージャ、または DML トリガーを削除または変更しようとすると、エラーが発生します。Trying to drop or modify a function, stored procedure, or DML trigger that is referenced by a plan guide, either enabled or disabled, causes an error.

無効なプラン ガイドを無効にする場合や、有効なプラン ガイドを有効にする場合は影響は生じず、エラーなしで実行できます。Disabling a disabled plan guide or enabling an enabled plan guide has no effect and runs without error.

プランガイドは、のすべてのエディションで使用できるわけではありません MicrosoftMicrosoft SQL ServerSQL ServerPlans guides are not available in every edition of MicrosoftMicrosoftSQL ServerSQL Server. SQL ServerSQL Server の各エディションでサポートされる機能の一覧については、「Editions and Supported Features for SQL Server 2016」 (SQL Server 2016 のエディションとサポートされる機能) を参照してください。For a list of features that are supported by the editions of SQL ServerSQL Server, see Editions and Supported Features for SQL Server 2016. ただし、の任意のエディションの [すべて削除] または [すべて削除] オプションを使用して sp_control_plan_guide を実行でき SQL ServerSQL Server ます。However, you can execute sp_control_plan_guide with the DROP or DROP ALL option in any edition of SQL ServerSQL Server.

アクセス許可Permissions

オブジェクト型 ( ** @type = '** OBJECT ' を指定して作成) のプランガイドでsp_control_plan_guideを実行するには、プランガイドによって参照されるオブジェクトに対する ALTER 権限が必要です。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. その他すべてのプラン ガイドでは、ALTER DATABASE 権限が必要です。All other plan guides require ALTER DATABASE permission.

Examples

A.A. プラン ガイドを無効にし、有効にした後、削除するEnabling, disabling and dropping a plan guide

次の例ではプラン ガイドを作成し、それを無効にし、有効にした後、削除します。The following example creates a plan guide, disables it, enables it, and drops it.

--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.B. 現在のデータベース内のすべてのプランガイドを無効にするDisabling all plan guides in the current database

次の例では、AdventureWorks2012AdventureWorks2012 データベースのすべてのプラン ガイドを無効にします。The following example disables all plan guides in the AdventureWorks2012AdventureWorks2012 database.

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

参照See Also

Transact-sql)(のストアドプロシージャのデータベースエンジン Database Engine Stored Procedures (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL) System Stored Procedures (Transact-SQL)
sp_create_plan_guide (Transact-SQL) sp_create_plan_guide (Transact-SQL)
sys.plan_guides (Transact-SQL) sys.plan_guides (Transact-SQL)
プラン ガイドPlan Guides