sys.query_store_plan (Transact-SQL)

適用対象: はいSQL Server 2016 (13.x) 以降 はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics

クエリに関連付けられた各実行プランに関する情報を格納します。

列名 データ型 説明
plan_id bigint 主キー
query_id bigint 外部キー。 Transact-sys.query_store_query (に結合SQL)。
plan_group_id bigint プラン グループの ID。 カーソル クエリには、通常、複数のプラン (設定とフェッチ) が必要です。 一緒にコンパイルされたプランの設定とフェッチは、同じグループ内に含されます。

0 は、プランがグループに含め "ない" を意味します。
engine_version nvarchar(32) 'major.minor.build.revision' 形式でプランをコンパイルするために使用されるエンジンのバージョン。
compatibility_level smallint クエリで参照されるデータベースのデータベース互換性レベル。
query_plan_hash binary(8) 個々のプランの MD5 ハッシュ。
query_plan nvarchar(max) クエリ プランのプラン表示 XML。
is_online_index_plan bit プランは、オンライン インデックスのビルド中に使用されました。
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
is_trivial_plan bit プランは簡単なプランです (クエリ オプティマイザーのステージ 0 の出力)。
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
is_parallel_plan bit プランは並列です。
注: Azure Synapse Analyticsは常に 1 を返します。
is_forced_plan bit ユーザーが ストアド プロシージャを 実行すると、プランは強制としてマーク sys.sp_query_store_force_plan。 このプランが、によって 参照されるクエリに対して正確に使用されるという保証は query_id。 プランの押し付けによってクエリが再度コンパイルされ、通常は、 によって参照されるプランとまったく同じまたは類似の プランが生成plan_id。 プランの実行が成功しない場合、force_failure_countがインクリメントされ、last_force_failure_reason エラーの 理由が設定されます。
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
is_natively_compiled bit プランには、ネイティブ コンパイルメモリ最適化プロシージャが含まれています。 (0 = FALSE、1 = TRUE)。
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
force_failure_count bigint このプランの実行が失敗した回数。 これは、クエリが再コンパイルされた場合にのみインクリメントできます (すべての実行 に対してではありません)。 FALSE から TRUE に変更 is_plan_forced 0 にリセット****されます
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
last_force_failure_reason int プランの実行が失敗した理由。

0: エラーなし。それ以外の場合は、エラー番号が原因でエラーが発生し、エラーが発生しました

8637: ONLINE_INDEX_BUILD

8683: INVALID_STARJOIN

8684: TIME_OUT

8689: NO_DB

8690: HINT_CONFLICT

8691: SETOPT_CONFLICT

8694: DQ_NO_FORCING_SUPPORTED

8698: NO_PLAN

8712: NO_INDEX

8713: VIEW_COMPILE_FAILED

<other value>: GENERAL_FAILURE
注: Azure Synapse Analyticsは常にゼロ (0) を返します。
last_force_failure_reason_desc nvarchar(128) テキストによるlast_force_failure_reason_desc。

ONLINE_INDEX_BUILD: ターゲット テーブルにオンラインで構築されているインデックスがある間に、クエリによってデータの変更が試みられた

INVALID_STARJOIN: プランに無効な StarJoin 仕様が含まれている

TIME_OUT: オプティマイザーが、強制プランで指定されたプランの検索中に許可された操作の数を超えました

NO_DB: プランで指定されたデータベースが存在しません

HINT_CONFLICT: プランがクエリ ヒントと競合する場合、クエリをコンパイルできません

DQ_NO_FORCING_SUPPORTED: プランが分散クエリまたはフルテキスト操作の使用と競合するために、クエリを実行できません。

NO_PLAN: 強制プランをクエリに対して有効と検証できないので、クエリ プロセッサがクエリ プランを生成できませんでした

NO_INDEX: プランで指定されたインデックスが存在しなくなりました

VIEW_COMPILE_FAILED: プランで参照されているインデックス付きビューで問題が発生したため、クエリ プランを強制できない

GENERAL_FAILURE: 一般的な適用エラー (上記の理由で説明されていない)
注: Azure Synapse Analyticsは常に NONE を返 します
count_compiles bigint コンパイル統計を計画します。
initial_compile_start_time datetimeoffset コンパイル統計を計画します。
last_compile_start_time datetimeoffset コンパイルの統計を計画します。
last_execution_time datetimeoffset [最終実行時間] は、クエリ/プランの最後の終了時刻を示します。
avg_compile_duration float コンパイルの統計を計画します。
last_compile_duration bigint コンパイルの統計を計画します。
plan_forcing_type int プランの強制型。

0: なし

1: 手動

2: AUTO
plan_forcing_type_desc nvarchar(60) Plan_forcing_type の説明テキスト。

NONE: プランの強制はありません

手動: プランはユーザーによって強制される

AUTO: 自動チューニングによって強制されるプラン

プランの適用の制限事項

クエリ ストアには、クエリ オプティマイザーに特定の実行プランを使用させるためのメカニズムがあります。 ただし、適用の適用を妨げる可能性のある制限がいくつかあります。

第 1 に、プランに次の構造が含まれる場合です。

  • INSERT BULK ステートメント
  • 外部テーブルの参照
  • 分散クエリまたはフルテキスト操作
  • グローバル クエリの使用
  • 動的カーソルまたはキーセットカーソル
  • 無効なスター結合の指定

注意

Azure SQL Database および SQL Server 2019 では、静的カーソルと高速転送カーソルに対するプランの強制がサポートされています。

第 2 に、プランが依存しているオブジェクトが使用できなくなった場合です。

  • データベース (プランの基になっているデータベースが存在しなくなった場合)
  • インデックス (存在しない場合、または無効になった場合)

最後に、プラン自体に問題がある場合です。

  • クエリに対して有効ではない
  • クエリ オプティマイザーが許可されている操作の数を超えた
  • プランの XML の形式が正しくない

アクセス許可

VIEW DATABASE STATE 権限が必要です。

参照

sys.database_query_store_options (transact-sql SQL)
sys.query_context_settings (transact-sql SQL)
sys.query_store_query (transact-sql SQL)
sys.query_store_query_text (transact-sql SQL)
sys.query_store_runtime_stats (transact-sql SQL)
sys.query_store_wait_stats (Transact-SQL)
sys.query_store_runtime_stats_interval (transact-sql SQL)
クエリのストアを使用した、パフォーマンスの監視
カタログ ビュー (Transact-SQL)
クエリ ストアのストアド プロシージャ (Transact-SQL)