Plan Guide Unsuccessful イベント クラス
適用対象: SQL Server
プラン ガイドの失敗イベント クラスは、SQL Server がプラン ガイドを含むクエリまたはバッチの実行プランを生成できなかったことを示します。 この場合、プラン ガイドは使用されずにプランがコンパイルされています。 このイベントは、次の条件に該当する場合に発生します。
プラン ガイド定義のバッチまたはモジュールが、実行されているバッチと一致する。
プラン ガイド定義のクエリが、実行されているクエリと一致する。
USE PLAN
のヒントを含めプラン ガイド定義のヒントがクエリまたはバッチに正常に適用されていない。 つまり、コンパイルされたクエリ プランには指定されたヒントが適用されず、プラン ガイドは使用されずにプランがコンパイルされている。
無効なプラン ガイドが原因でこのイベントが発生する場合があります。 クエリまたはバッチで使用されるプラン ガイドを sys.fn_validate_plan_guide 関数を使用して検証し、この関数で報告されたエラーを修正します。
このイベントは、SQL Server プロファイラー チューニング テンプレートに含まれています。
Note
このイベント クラスは、Azure SQL Database では使用できません。
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 セキュリティ ログインまたは MICROSOFT Windows ログイン資格情報 (DOMAIN\username 形式)。 | 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 | はい |
参照
Plan Guide Successful イベント クラス
拡張イベント
sp_trace_setevent (Transact-SQL)
sys.fn_validate_plan_guide (Transact-SQL)
sp_create_plan_guide (Transact-SQL)
sp_create_plan_guide_from_handle (Transact-SQL)