Plan Guide Unsuccessful イベント クラス

Plan Guide Unsuccessful イベント クラスは、プラン ガイドを含むクエリまたはバッチに対する実行プランを SQL Server が生成できなかったことを示します。この場合、プラン ガイドは使用されずにプランがコンパイルされています。このイベントは、次の条件に該当する場合に発生します。

  • プラン ガイド定義のバッチまたはモジュールが、実行されているバッチと一致する。

  • プラン ガイド定義のクエリが、実行されているクエリと一致する。

  • USE PLAN を含めプラン ガイド定義のヒントがクエリまたはバッチに正常に適用されていない。つまり、コンパイルされたクエリ プランには指定されたヒントが適用されず、プラン ガイドは使用されずにプランがコンパイルされている。

無効なプラン ガイドが原因でこのイベントが発生する場合があります。クエリまたはバッチで使用されるプラン ガイドを sys.fn_validate_plan_guide 関数を使用して検証し、この関数で報告されたエラーを修正します。

このイベントは、SQL Server Profiler の Tuning テンプレートに含まれています。

Plan Guide Unsuccessful イベント クラスのデータ列

データ列名

データ型

説明

列 ID

フィルタの適用

ApplicationName

nvarchar

SQL Server のインスタンスへの接続を作成したクライアント アプリケーションの名前。この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。

10

ClientProcessID

int

クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピュータが割り当てた ID。クライアントによりクライアント プロセス ID が指定されると、このデータ列が作成されます。

9

DatabaseID

int

USE database ステートメントで指定されたデータベースの ID。特定のインスタンスについて USE database ステートメントが実行されていない場合は、既定のデータベースの ID となります。SQL Server Profiler では、ServerName データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。データベースに対応する値は、DB_ID 関数を使用して特定します。

3

DatabaseName

nvarchar

ユーザーのステートメントが実行されているデータベースの名前。

35

EventClass

int

イベントの種類 = 218。

27

不可

EventSequence

int

要求内の特定のイベントのシーケンス。

51

不可

HostName

nvarchar

クライアントが実行されているコンピュータの名前。クライアントによりホスト名が指定されている場合は、このデータ列に値が格納されます。ホスト名を指定するには、HOST_NAME 関数を使用します。

8

IsSystem

int

イベントがシステム プロセスで発生したか、ユーザー プロセスで発生したかを示します。1 = システム、0 = ユーザーです。

60

LoginName

nvarchar

ユーザーのログイン名 (SQL Server セキュリティ ログインまたは DOMAIN\username という形式の Microsoft Windows ログイン資格情報)。

11

LoginSid

image

ログイン ユーザーのセキュリティ ID 番号 (SID)。この情報は、sys.server_principals カタログ ビューまたは sys.sql_logins カタログ ビューで参照できます。各 SID はサーバー上の各ログインに固有です。

41

NTDomainName

nvarchar

ユーザーが所属する Windows ドメイン。

7

NTUserName

nvarchar

Windows のユーザー名。

6

ObjectID

int

プラン ガイドが適用されたときにコンパイルされていたモジュールのオブジェクト ID。プラン ガイドがモジュールに適用されなかった場合、この列は NULL に設定されます。

22

RequestID

int

ステートメントが含まれている要求の ID。

49

ServerName

nvarchar

トレースされている SQL Server のインスタンスの名前。

26

不可

SessionLoginName

nvarchar

セッションを開始したユーザーのログイン名。たとえば、Login1 を使用して SQL Server に接続し、Login2 でステートメントを実行すると、SessionLoginName には Login1 が表示され、LoginName には Login2 が表示されます。この列には、SQL Server ログインと Windows ログインの両方が表示されます。

64

SPID

int

イベントが発生したセッションの ID。

12

StartTime

datetime

イベントの開始時刻 (取得できた場合)。

14

TextData

ntext

プラン ガイドの名前。

1

TransactionID

bigint

トランザクションにシステムが割り当てた ID。

4

XactSequence

bigint

現在のトランザクションを説明するトークン。

50