Query Activity コレクタ型
Query Activity コレクタ型は、事前に定義されたシステム データ コレクション セットの 1 つであるクエリ統計情報コレクション セットで使用する、カスタム コレクタ型です。
このコレクタ型は、事前に定義された条件を満たすクエリに関し、クエリ統計情報、クエリ利用状況情報、クエリ プラン、およびクエリ テキストを収集するために使用します。このコレクタ型を使用して独自のコレクション セットを作成した場合、収集される情報はクエリ統計情報コレクション セットの場合と同じです。したがって、事前に定義されたクエリ統計情報コレクション セットを使用することをお勧めします。
アーキテクチャと処理
Query Activity コレクタ型は、次の要素で構成されています。
入力パラメータのスキーマ (内部)
データ収集のための SSIS パッケージ (QueryActivityCollect.dtsx)
データのアップロードのための SSIS パッケージ (QueryActivityUpload.dtsx)
さらに、このコレクタ型はカスタム タスクまたは変換を使用して、管理データ ウェアハウスに格納するデータを分析および選択します。
Query Activity コレクタ型は、次の操作を実行します。
dm_exec_requests、dm_exec_sessions、および選択されたその他の関連する動的管理ビューのサンプルを収集します。これは、1 つの結合クエリとして実装されます。データ コレクションは、コレクション アイテムに指定された頻度で実行されます。
dm_exec_query_stats 動的管理ビューのスナップショットを、コレクション セットのアップロードと同じ頻度で収集します。既定では、クエリ統計情報コレクション セットは、15 分ごとにアップロードされます。
コレクション フェーズ
次の表に、コレクション フェーズで使用されるクエリを示します。このクエリは、QueryActivityCollect.dtsx SSIS パッケージで定義されます。
収集頻度 |
10 秒 |
クエリ |
|
アップロード フェーズ
アップロード フェーズでは、収集したデータを分析し、管理データ ウェアハウスに保存するデータを決定します。この分析では、保存する必要があるクエリ統計情報、クエリ プラン、およびクエリ テキストのセットを決定します。
重要な要素が、データ ウェアハウスに保存するクエリおよびクエリ プランを選択するアルゴリズムです。このアルゴリズムは次のように機能します。
sys.dm_exec_query_stats のスナップショットを収集します。このスナップショットは、コレクション セットのアップロードと同じ頻度で収集されます (既定では、15 分です)。
新しいスナップショットと比較する最新のスナップショット (15 分前のもの) を取得します。最新のスナップショットはローカルにキャッシュされており、管理データ ウェアハウスから取得する必要はありません。
次の基準を使用して、それぞれのスナップショットから上位 3 個のクエリを選択します。
経過時間
ワーカー時間
論理読み取り数
論理書き込み数
物理読み取り数
実行カウント
この処理により、6 x 3 個の sql_handle と plan_handle が提供されます。
一意の sql_handle と plan_handle を特定します。
この結果を、データ ウェアハウスに格納されている sql_handle および plan_handle と重ね合わせます。
新しい sql_handle と plan_handle に対し、サーバーからプランとテキストを取得します。プランまたはテキストが見つからない場合は (ローカル キャッシュから削除されている可能性があります)、管理データ ウェアハウスにハンドルを保存します。
収集された sql_handle テキストごとに、テキストを正規化し (たとえば、パラメータとリテラルを削除します)、正規化されたテキストに対して一意のハッシュ値を計算します。正規化されたテキスト、ハッシュ値、および元の sql_handle へのマッピングを管理データ ウェアハウスに保存します。
次の表に、スナップショットを取得し、データを分析して管理データ ウェアハウスにアップロードするために使用するクエリを示します。このクエリは、QueryActivityUpload.dtsx SSIS パッケージで定義されます。
クエリ |
|
クエリの出力 |
snapshots.query_stats、snapshots.notable_query_text、および snapshots.notable_query_plan |
変更履歴
変更内容 |
---|
「コレクション フェーズ」と「アップロード フェーズ」のセクションを追加しました。 |
アップロード フェーズで管理データ ウェアハウスに保存されるデータに関する基準を QueryActivityUpload.dtsx SSIS パッケージで定義されるクエリに置き換えました。 |