sys.query_store_plan (Transact-SQL)sys.query_store_plan (Transact-SQL)

適用対象: ○SQL Server 2016 以降 ○Azure SQL Database ○Azure Synapse Analytics (SQL DW) XParallel Data Warehouse APPLIES TO: yesSQL Server 2016 and later yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

クエリに関連付けられている各実行プランに関する情報を格納します。Contains information about each execution plan associated with a query.

列名Column name データ型Data type [説明]Description
plan_idplan_id bigintbigint 主キーPrimary key.
query_idquery_id bigintbigint 外部キー。Foreign key. Query_store_query (transact-sql)に結合します。Joins to sys.query_store_query (Transact-SQL).
plan_group_idplan_group_id bigintbigint プラングループの ID。ID of the plan group. 通常、カーソルクエリには複数の (設定およびフェッチ) プランが必要です。Cursor queries typically require multiple (populate and fetch) plans. 同時にコンパイルされたプランの設定とフェッチは、同じグループに含まれます。Populate and fetch plans that are compiled together are in the same group.

0は、プランがグループに含まれていないことを示します。0 means plan is not in a group.
engine_versionengine_version nvarchar (32)nvarchar(32) ' Major. minor. build. revision ' 形式でプランをコンパイルするために使用されるエンジンのバージョン。Version of the engine used to compile the plan in 'major.minor.build.revision' format.
compatibility_levelcompatibility_level smallintsmallint クエリで参照されているデータベースのデータベース互換性レベル。Database compatibility level of the database referenced in the query.
query_plan_hashquery_plan_hash binary (8)binary(8) 個々のプランの MD5 ハッシュ。MD5 hash of the individual plan.
query_planquery_plan nvarchar(max)nvarchar(max) クエリプランの Showplan XML。Showplan XML for the query plan.
is_online_index_planis_online_index_plan bitbit プランは、オンラインのインデックス構築中に使用されました。Plan was used during an online index build.
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
is_trivial_planis_trivial_plan bitbit Plan は、単純なプランです (クエリオプティマイザーのステージ0での出力)。Plan is a trivial plan (output in stage 0 of query optimizer).
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
is_parallel_planis_parallel_plan bitbit 計画は並行しています。Plan is parallel.
注: Azure SQL Data Warehouse は常に1を返します。Note: Azure SQL Data Warehouse will always return one (1).
is_forced_planis_forced_plan bitbit ユーザーがストアドプロシージャのsp_query_store_force_planを実行するときに、Plan が forced とマークされます。Plan is marked as forced when user executes stored procedure sys.sp_query_store_force_plan. 強制メカニズムでは、 query_idによって参照されるクエリに対してこのプランが確実に使用されることは保証されませんForcing mechanism does not guarantee that exactly this plan will be used for the query referenced by query_id. プランの強制を実行すると、クエリが再コンパイルされ、通常はplan_idによって参照されるプランに対してまったく同じまたは類似したプランが生成されます。Plan forcing causes query to be compiled again and typically produces exactly the same or similar plan to the plan referenced by plan_id. プランの強制が成功しなかった場合、 force_failure_countがインクリメントされ、エラーの理由でlast_force_failure_reasonが設定されます。If plan forcing does not succeed, force_failure_count is incremented and last_force_failure_reason is populated with the failure reason.
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
is_natively_compiledis_natively_compiled bitbit プランには、ネイティブコンパイルメモリ最適化プロシージャが含まれています。Plan includes natively compiled memory optimized procedures. (0 = FALSE、1 = TRUE)。(0 = FALSE, 1 = TRUE).
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
force_failure_countforce_failure_count bigintbigint このプランを強制する回数が失敗しました。Number of times that forcing this plan has failed. クエリが再コンパイルされる (すべての実行ではなく) 場合にのみ、増分できます。It can be incremented only when the query is recompiled (not on every execution). Is_plan_forcedFALSEからTRUEに変更されるたびに0にリセットされます。It is reset to 0 every time is_plan_forced is changed from FALSE to TRUE.
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
last_force_failure_reasonlast_force_failure_reason intint プランの強制に失敗した理由。Reason why plan forcing failed.

0: 失敗しません。それ以外の場合、強制に失敗する原因となったエラーのエラー番号0: no failure, otherwise error number of the error that caused the forcing to fail

8637: ONLINE_INDEX_BUILD8637: ONLINE_INDEX_BUILD

8683: INVALID_STARJOIN8683: INVALID_STARJOIN

8684: TIME_OUT8684: TIME_OUT

8689: NO_DB8689: NO_DB

8690: HINT_CONFLICT8690: HINT_CONFLICT

8691: SETOPT_CONFLICT8691: SETOPT_CONFLICT

8694: DQ_NO_FORCING_SUPPORTED8694: DQ_NO_FORCING_SUPPORTED

8698: NO_PLAN8698: NO_PLAN

8712: NO_INDEX8712: NO_INDEX

8713: VIEW_COMPILE_FAILED8713: VIEW_COMPILE_FAILED

<その他の値>: GENERAL_FAILURE<other value>: GENERAL_FAILURE
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
last_force_failure_reason_desclast_force_failure_reason_desc nvarchar(128nvarchar(128) Last_force_failure_reason_desc の説明テキスト。Textual description of last_force_failure_reason_desc.

ONLINE_INDEX_BUILD: ターゲットテーブルにオンラインでビルドされているインデックスがあるときに、クエリでデータを変更しようとしていますONLINE_INDEX_BUILD: query tries to modify data while target table has an index that is being built online

INVALID_STARJOIN: プランに無効な StarJoin 仕様が含まれていますINVALID_STARJOIN: plan contains invalid StarJoin specification

TIME_OUT: オプティマイザーによって指定されたプランを検索しているときに、オプティマイザーが許可された操作の数を超えましたTIME_OUT: Optimizer exceeded number of allowed operations while searching for plan specified by forced plan

NO_DB: プランに指定されたデータベースが存在しませんNO_DB: A database specified in the plan does not exist

HINT_CONFLICT: プランがクエリヒントと競合するため、クエリをコンパイルできませんHINT_CONFLICT: Query cannot be compiled because plan conflicts with a query hint

DQ_NO_FORCING_SUPPORTED: プランが分散クエリまたはフルテキスト操作の使用と競合しているため、クエリを実行できません。DQ_NO_FORCING_SUPPORTED: Cannot execute query because plan conflicts with use of distributed query or full-text operations.

NO_PLAN: クエリプロセッサはクエリプランを作成できませんでした。強制されたプランをクエリに対して有効であることを確認できませんでしたNO_PLAN: Query processor could not produce query plan because forced plan could not be verified to be valid for the query

NO_INDEX: プランに指定されたインデックスは存在しませんNO_INDEX: Index specified in plan no longer exists

VIEW_COMPILE_FAILED: プランで参照されているインデックス付きビューで問題が発生したため、クエリプランを強制できませんでしたVIEW_COMPILE_FAILED: Could not force query plan because of a problem in an indexed view referenced in the plan

GENERAL_FAILURE: 一般的なエラー (上記の理由では説明されていません)GENERAL_FAILURE: general forcing error (not covered with reasons above)
注: Azure SQL Data Warehouse は常にNONEを返します。Note: Azure SQL Data Warehouse will always return NONE.
count_compilescount_compiles bigintbigint コンパイルの統計を計画します。Plan compilation statistics.
initial_compile_start_timeinitial_compile_start_time datetimeoffsetdatetimeoffset コンパイルの統計を計画します。Plan compilation statistics.
last_compile_start_timelast_compile_start_time datetimeoffsetdatetimeoffset コンパイルの統計を計画します。Plan compilation statistics.
last_execution_timelast_execution_time datetimeoffsetdatetimeoffset [最終実行時間] は、クエリ/プランの最後の終了時刻を示します。Last execution time refers to the last end time of the query/plan.
avg_compile_durationavg_compile_duration floatfloat コンパイルの統計を計画します。Plan compilation statistics.
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
last_compile_durationlast_compile_duration bigintbigint コンパイルの統計を計画します。Plan compilation statistics.
注: Azure SQL Data Warehouse は常にゼロ (0) を返します。Note: Azure SQL Data Warehouse will always return zero (0).
plan_forcing_typeplan_forcing_type intint プランの強制型。Plan forcing type.

0: なし0: NONE

1: 手動1: MANUAL

2: AUTO2: AUTO
plan_forcing_type_descplan_forcing_type_desc nvarchar (60)nvarchar(60) Plan_forcing_type の説明テキスト。Text description of plan_forcing_type.

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

手動: プランはユーザーによって強制されるMANUAL: Plan forced by user

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

プランの適用の制限事項Plan forcing limitations

クエリ ストアには、クエリ オプティマイザーに特定の実行プランを使用させるためのメカニズムがあります。Query Store has a mechanism to enforce Query Optimizer to use certain execution plan. ただし、適用の適用を妨げる可能性のある制限がいくつかあります。However, there are some limitations that can prevent a plan to be enforced.

第 1 に、プランに次の構造が含まれる場合です。First, if the plan contains following constructions:

  • INSERT BULK ステートメントInsert bulk statement.
  • 外部テーブルの参照Reference to an external table
  • 分散クエリまたはフルテキスト操作Distributed query or full-text operations
  • グローバル クエリの使用Use of Global queries
  • 動的カーソルまたはキーセットカーソルDynamic or keyset cursors
  • 無効なスター結合の指定Invalid star join specification

注意

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

第 2 に、プランが依存しているオブジェクトが使用できなくなった場合です。Second, when objects that plan relies on, are no longer available:

  • データベース (プランの基になっているデータベースが存在しなくなった場合)Database (if Database, where plan originated, does not exist anymore)
  • インデックス (存在しない場合、または無効になった場合)Index (no longer there or disabled)

最後に、プラン自体に問題がある場合です。Finally, problems with the plan itself:

  • クエリに対して有効ではないNot legal for query
  • クエリ オプティマイザーが許可されている操作の数を超えたQuery Optimizer exceeded number of allowed operations
  • プランの XML の形式が正しくないIncorrectly formed plan XML

アクセス許可Permissions

VIEW DATABASE STATE権限が必要です。Requires the VIEW DATABASE STATE permission.

参照See Also

database_query_store_options (Transact-sql) sys.database_query_store_options (Transact-SQL)
query_context_settings (Transact-sql) sys.query_context_settings (Transact-SQL)
query_store_query (Transact-sql) sys.query_store_query (Transact-SQL)
query_store_query_text (Transact-sql) sys.query_store_query_text (Transact-SQL)
query_store_runtime_stats (Transact-sql) sys.query_store_runtime_stats (Transact-SQL)
query_store_wait_stats (Transact-sql)sys.query_store_wait_stats (Transact-SQL)
query_store_runtime_stats_interval (Transact-sql) sys.query_store_runtime_stats_interval (Transact-SQL)
クエリのストアを使用した、パフォーマンスの監視 Monitoring Performance By Using the Query Store
カタログ ビュー (Transact-SQL) Catalog Views (Transact-SQL)
Transact-sql)(のストアドプロシージャのクエリストアQuery Store Stored Procedures (Transact-SQL)