サーチ…


データベースにクエリストアを有効にする

クエリストアは、次のコマンドを使用してデータベース上で有効にすることができます。

ALTER DATABASE tpch SET QUERY_STORE = ON

SQL Server / Azure SQLデータベースは、実行されたクエリに関する情報を収集し、sys.query_storeビューで情報を提供します。

  • sys.query_store_query
  • sys.query_store_query_text
  • sys.query_store_plan
  • sys.query_store_runtime_stats
  • sys.query_store_runtime_stats_interval
  • sys.database_query_store_options
  • sys.query_context_settings

SQLクエリ/プランの実行統計を取得する

次のクエリは、qeries、その計画、平均時間、CPU時間、物理的および論理的な読み取りに関する情報を返します。

SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id,
        avg_duration, avg_cpu_time, 
        avg_physical_io_reads, avg_logical_io_reads
FROM sys.query_store_plan AS Pl  
JOIN sys.query_store_query AS Qry  
    ON Pl.query_id = Qry.query_id  
JOIN sys.query_store_query_text AS Txt  
    ON Qry.query_text_id = Txt.query_text_id
JOIN sys.query_store_runtime_stats Stats
    ON Pl.plan_id = Stats.plan_id

クエリストアからデータを削除する

クエリストアまたはクエリプランをクエリストアから削除する場合は、次のコマンドを使用できます。

EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3; 

これらのストアドプロシージャのパラメータは、システムビューから取得されたクエリ/プランIDです。

プランを店舗から削除することなく、特定のプランの実行統計を削除することもできます。

EXEC sp_query_store_reset_exec_stats 3;  

このプロシージャに提供されたパラメータplan id。

クエリの計画を強制する

SQL問合せオプティマイザは、いくつかの問合せに対して見つけることができるベイズの可能な計画を選択します。一部のクエリで最適に機能するプランが見つかった場合は、QOに常に次のストアドプロシージャを使用してそのプランを使用させることができます。

EXEC sp_query_store_unforce_plan @query_id, @plan_id

この時点から、QOは常にクエリに対して提供された計画を使用します。

このバインディングを削除する場合は、次のストアドプロシージャを使用できます。

EXEC sp_query_store_force_plan @query_id, @plan_id

この時点から、QOは再び最高の計画を見つけようとします。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow