データベース エンジン チューニング アドバイザーを使用したクエリ ストアからのワークロードを使用したデータベースのチューニング

適用対象:SQL Server

SQL Server のクエリ ストア機能では、クエリ履歴、計画、および実行時統計を自動的にキャプチャし、これらの情報をデータベース内に保持します。 データベース エンジン チューニング アドバイザー (DTA) は、クエリ ストアを使用してチューニングの適切なワークロードを自動的に選択するという新しいオプションをサポートしています。 大半のユーザーは、この機能を使用すれば、チューニングのワークロードを明示的に収集する必要がなくなります。

この機能は、データベースでクエリ ストア機能がオンになっている場合のみ有効です。 詳細は、クエリ ストアの有効を参照してください。

この機能は、 v16.4 以降の SQL Server Management Studio で使用できます。

データベース エンジン チューニング アドバイザー GUI でクエリ ストアからのワークロードをチューニングする方法

DTA の GUI で、[全般] ペインの [クエリ ストア] をクリックして、この機能を有効にします (以下の図を参照)。

DTA workload from query store

dta.exe コマンド ライン ユーティリティでクエリ ストアからのワークロードをチューニングする方法

コマンド ライン (dta.exe) で -iq オプションを選択して、クエリ ストアからワークロードを選択します。

コマンドラインでは 2 つの追加オプションがあり、クエリ ストアからのワークロード選択時に DTA の動作をチューニングするのに役立ちます。 これらのオプションは、GUI では使用できません。

  1. チューニングするワークロードのイベントの数: このオプションは -n コマンドライン引数を使用して指定され、チューニングするクエリ ストアからのイベントの数を制御することができます。 DTA でのこのオプションの既定値は 1000 です。 DTA は常に、総実行時間に対して最もコストの高いイベントを選択します。

  2. チューニングするイベントの時刻ウィンドウ: クエリ ストアにはかなり前に実行されたクエリが含まれている場合があるので、このオプションを使用して、DTA でのチューニングのためにクエリが実行されたはずの過去の期間 (時間) を指定することができます。 このオプションは -I コマンドライン引数を使用して指定します。

詳細については、「dta Utility」(dta ユーティリティ) をご参照ください。

クエリ ストアからのワークロードの使用とプラン キャッシュからのワークロードの使用の違い

クエリ ストアとプラン キャッシュの違いは、前者には、データベースに対して実行されたクエリがより長い期間にわたって含まれているということです。クエリはサーバー再起動後も保持されています。 一方、プラン キャッシュには、プランがメモリにキャッシュされている最近実行されたクエリのサブセットのみが含まれます。 サーバーが再起動すると、プラン キャッシュ内のエントリは破棄されます。

次のステップ