プラン ガイドを作成する方法 (SQL Server Management Studio)
このトピックでは、SQL Server Management Studio を使用してプラン ガイドを作成する方法について説明します。プラン ガイドは、クエリ ヒントまたは固定クエリ プランをクエリにアタッチすることにより、クエリの最適化を促します。プラン ガイドでは、最適化する Transact-SQL ステートメントと、使用するクエリ ヒントを含む OPTION 句またはクエリの最適化に使用する特定のクエリ プランのいずれかを指定します。クエリが実行されると、クエリ オプティマイザにより Transact-SQL ステートメントがプラン ガイドと照合され、実行時にクエリに OPTION 句がアタッチされるか、指定されたクエリ プランが使用されます。
次の例では、Transact-SQL ステートメントのプラン ガイドを作成して、FORCESEEK クエリ ヒントをステートメントに適用します。このクエリ ヒントは、インデックスのシーク操作を使用して指定したテーブルのデータにアクセスするよう、オプティマイザに指示します。
プラン ガイドの例を作成するには
オブジェクト エクスプローラで、データベース エンジンに接続し、そのインスタンスを展開します。
[データベース] を展開し、AdventureWorks データベースを展開して、[プログラミング] を展開します。
[プラン ガイド] を右クリックし、[新しいプラン ガイド] をクリックします。
[名前] に、プラン ガイドの名前として「ForceseekPlan」と入力します。
[ステートメント] に、次の Transact-SQL ステートメントを入力します。これは、プラン ガイドを適用する対象のステートメントです。
SELECT c.LastName, c.FirstName, HumanResources.Employee.Title FROM HumanResources.Employee JOIN Person.Contact AS c ON HumanResources.Employee.ContactID = c.ContactID WHERE HumanResources.Employee.ManagerID = 3 ORDER BY c.LastName, c.FirstName;[スコープの種類] で、Transact-SQL ステートメントが存在するエンティティの種類として [SQL] を選択します。
[ヒント] に、次の OPTION 句を入力します。
OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))プラン ガイドを作成するには、[OK] をクリックします。
プラン ガイドがクエリに一致することを確認するには
SQL Server Profiler トレースを開始し、イベントの種類として Plan Guide Successful および Plan Guide Unsuccessful が選択されていることを確認します ([Performance] ノードの下にあります)。
前の手順の手順 5. で指定したクエリを実行します。
SQL Server Profiler トレースを一時停止します。
影響するクエリの Plan Guide Successful イベントを検索します。
プラン ガイドがクエリに一致しなかった場合、クエリがプラン ガイド ステートメントで指定されたときと同じ形式で、同じ文字で指定されていることを確認します。これには、タブ、スペース、復帰、または改行も含まれます。