読者です 読者をやめる 読者になる 読者になる

小物SEのメモ帳

IT関係の試したことや調べたことの備忘録

【SQL Server】データコレクションの「サーバーの利用状況の履歴」・「クエリ統計の履歴」レポート出力の仕方

データコレクションのレポートのうちよく参照するであろう「サーバの利用状況の履歴」「クエリ統計の履歴」の出力についてです。

「サーバの利用状況の履歴」「クエリ統計の履歴」で出力できるグラフの関係図は以下のとおりです。
f:id:utiowa:20170109182611p:plain

「サーバの利用状況の履歴」のプロパティ情報は以下のようになっています。
ここでは、どのようなクエリで本レポート用の情報収集が行われているかも確認することができます。
f:id:utiowa:20170109182656p:plain

「クエリ統計の履歴」のプロパティ情報は以下のようになっています。
f:id:utiowa:20170109182709p:plain


◆サーバーの利用状況の履歴
このレポートでは、グラフ上段のタイムラインで指定した区間におけるCPU使用率、メモリ、ディスクI/O、ネットワークの使用量を確認することができます。
それぞれの使用率は、SQL Serverとシステムをわけてグラフとして表示されます。

中段では、「SQL Serverの待機」」グラフとして、どのような待ち事象がどれくらい発生していたか確認することができます。
下段では、「SQL Serverの利用状況」グラフとして1秒当たりのバッチリクエスト数や、Complilation数などを確認することができます。
飛べるリンク先については番号で後述していきます。
f:id:utiowa:20170109182727p:plain


SQL Serverの待機
「サーバーの利用状況の履歴」レポートの①をクリックすると、「SQL Serverの待機」レポートへ遷移することができます。
各待ち事象における詳細な内訳と割合などをここで確認することができます。
PageIOLatchやLockの状況を過去に遡って確認できるため、後からパフォーマンス低下時の状況を確認でき便利です。

"CPU"をクリックすると、後述する「④クエリ統計の履歴」レポートの"総CPU時間ごと"の上位10クエリが表示できます。
"Buffer I/O"をクリックすると、後述する「⑧SQL Server ディスクI/Oの使用量」レポートに遷移できます。
"Lock"をクリックすると、後述する「⑨SQL Serverブロッキング」レポートに遷移できます。
そのほかのリンクをクリックすると、後述する「⑫SQL Serverのサンプリングされた待機」レポートに遷移できます。
f:id:utiowa:20170109182747p:plain


SQL Serverの利用状況
「サーバーの利用状況の履歴」レポートの②をクリックすると、「SQL Serverの利用状況」レポートへ遷移することができます。
各時間帯毎の接続数や、バッチリクエスト数プランキャッシュヒット率、tempdbの使用状況が確認できます。

プランキャッシュヒット率や、tempdbの使用状況が簡単に確認でき、こちらも便利かと思います。
f:id:utiowa:20170109182821p:plain


③システムのCPU使用率
「サーバーの利用状況の履歴」レポートのCPUグラフ中にプロットされている線(③)をクリックすると、「システムのCPU使用率」レポートへ遷移することができます。

このレポートでは、各プロセッサ毎の使用率や、スレッドの平均数を確認できます。
SQL Server含むすべてのプロセッサの使用率がわかるので、サーバー全体でのCPU使用率の推移を見ることができます。
f:id:utiowa:20170109182835p:plain


④クエリ統計の履歴
「サーバーの利用状況の履歴」レポートのCPUグラフ中にプロットされている線(④)をクリックすると、「クエリ統計の履歴」レポートへ遷移することができます。
また、オブジェクトブラウザの「管理-データコレクション」を右クリックした際に表示できる「クエリ統計の履歴」レポートも本内容と同じもととなります。

「サーバーの利用状況の履歴」レポートのCPUグラフをクリックして遷移した本レポートは、該当時間帯における総CPU時間ごとの上位10クエリを確認することができます。
また、クエリの順位付け方法の各リンクをクリックすることで、同時間帯におけるそれぞれの上位10クエリを確認できます。

下段の各クエリをクリックすると各クエリの詳細レポートである「⑬クエリの詳細」へ飛ぶことができます。
f:id:utiowa:20170109182851p:plain


⑤システムのメモリ使用量
「サーバーの利用状況の履歴」レポートのメモリグラフ中にプロットされている線(⑤)をクリックすると、「システムのメモリ使用量」レポートへ遷移することができます。

このレポートでは、サーバー全体で使用しているWorkingSet、Privatebyteなどの物理メモリ使用量やキャッシュのサイズを確認することができます。
f:id:utiowa:20170109182906p:plain


SQL Serverのメモリ使用量
「サーバーの利用状況の履歴」レポートのメモリグラフ中にプロットされている線(⑥)をクリックすると、「SQL Serverのメモリ使用量」レポートへ遷移することができます。

このレポートでは、SQL Serverの各プロセスが使用しているメモリの使用量※や、PLE、各コンポーネントごとのメモリ使用量が確認できます。
SQL Serverプロセス メモリ使用量がなぜか取得できていなかったため、グラフに表示されておりません。。。

特にPLEや「種類別のSQL Server内部メモリの消費量」のSQLBUFFERPOOLを見ることでSQL Serverへのメモリ割り当てが十分か確認できるため重宝するレポートになるかと思います。
f:id:utiowa:20170109182917p:plain


⑦システムのディスク使用量
「サーバーの利用状況の履歴」レポートのディスクI/Oグラフ中にプロットされている線(⑦)をクリックすると、「システムのディスク使用量」レポートへ遷移することができます。

各ディスクごとの応答時間やキューの平均の長さ、転送速度の推移などが確認できます。
f:id:utiowa:20170109182933p:plain


SQL ServerのディスクI/Oの使用量
「サーバーの利用状況の履歴」レポートのディスクI/Oグラフ中にプロットされている線(⑧)をクリックすると、「SQL ServerのディスクI/O使用量」レポートへ遷移することができます。

SQL Serverの各データファイル、ログファイルの格納先であるディスクの応答時間などがここでわかります。
中段にある「「ディスクI/O使用量別のクエリ統計の履歴レポートを表示」をクリックすると、上記④の「「クエリ統計の履歴」レポートの"I/Oの合計数"上位10クエリが表示できます。
下段では、データファイルやログファイル転送時の待機イベントについてもサンプリングされており、「⑫SQL Serverのサンプリングされた待機」レポートへ遷移することができます。
f:id:utiowa:20170109182945p:plain


SQL Serverブロッキング
「①SQL Serverの待機」レポートの⑨"Lock"をクリックすると、「SQL Serverブロッキング」レポートへ遷移することができます。

このレポートでは、該当時間帯に実行されているブロッキング情報を確認することができます。
ブロッキングの開始時刻や実行時間が過去分に遡って確認することができます。
下段のチェーン#の各項番(⑩)をクリックすると、後述する⑩SQL Serverブロッキングチェーンの詳細」レポートへ遷移することができます。
f:id:utiowa:20170109182958p:plain


SQL Serverブロッキングチェーンの詳細
このレポートでは、ブロッキングチェーンの概要として、ブロッキングの開始時刻やブロックセッション数、先頭ブロックの概要やクエリが確認できます。

また、下段の左側にある"サンプル時刻"の時刻リンク(⑪)をクリックすると、後述する「⑪SQL Serverのアクティブな要求」レポートへ遷移することができます。
下段の右側にある"クエリ"のクエリテキストのリンク(⑭)をクリックすると、後述する「⑭クエリプランの詳細」レポートへ遷移することができます。
f:id:utiowa:20170109183009p:plain


SQL Serverのアクティブな要求
このレポートでは、特定の時間(遷移前のレポートで選択した時間)におけるリクエストとセッションについての情報を確認することができます。
ロックを発生させていたクエリがそのセッションでどの程度のCPU時間、Phisical Read、実行時間であったか等々が確認できます。

各セッションを開くと表示できる"クエリ"のクエリテキストのリンク(⑭)をクリックすると、後述する「⑭クエリプランの詳細」レポートへ遷移することができます。
f:id:utiowa:20170109183020p:plain


SQL Serverのサンプリングされた待機
このレポートでは、各待機毎のカテゴリにおける待機イベントが発生している数と割合をデータベース毎、実行されているクエリ毎に確認することができます。
待機カテゴリを開いていくと表示できる"クエリ"のクエリテキストのリンク(⑬)をクリックすると、後述する「⑬クエリの詳細」レポートへ遷移することができます。
f:id:utiowa:20170109183033p:plain


⑬クエリの詳細
このレポートでは、遷移前のレポートで選択したクエリの該当時間帯における詳細情報を確認することができます。
詳細な見方については、以前もご紹介していますので、過去記事を見ていただければと思います。
【SQL server】クエリ統計の履歴レポートについて - 小物SEのメモ帳

中段の"このクエリに関するサンプリングされた待機を表示"リンク(⑫)をクリックすると、前述した「⑫SQL Serverのサンプリングされた待機」レポートへ遷移することができます。
下段のプラン番号の各項番リンク(⑭)をクリックすると、後述する「⑭クエリプランの詳細」レポートへ遷移することができます。
f:id:utiowa:20170109183044p:plain


「⑭クエリプランの詳細」
このレポートでは、遷移前のレポートで選択した実行プラン時のクエリの実行統計の情報が確認できます。
パラメータ最適化が行われている場合、実行プラン作成時のパラメータなどもここで確認可能です。

中段の"このクエリに関するサンプリングされた待機を表示"リンク(⑫)をクリックすると、前述した「⑫SQL Serverのサンプリングされた待機」レポートへ遷移することができます。
同じく中段の"グラフィカルなクエリ実行プランの表示"リンク(⑮)をクリックすると、実行プランが表示できます。※
※データコレクション機能で取得できている場合に限ります。
f:id:utiowa:20170109183055p:plain
f:id:utiowa:20170109183104p:plain