PART 06 — SSMS 標準レポートによる取得とセクション定義
SQL Server Management Studio(SSMS)には、T-SQL を記述せずにクリック操作だけで 性能情報を確認できる「標準レポート」と「Activity Monitor」が内蔵されています。 初期調査・管理者への報告・素早いボトルネック確認に最適です。 本記事では各レポートの開き方・セクション定義・読み方を体系的に整理します。
1. Activity Monitor — リアルタイムモニタリング
Activity Monitor は SQL Server のリアルタイム状況を 4 つのペインで表示します。
開き方: SSMS ツールバーの「Activity Monitor」アイコン、または
オブジェクトエクスプローラーでサーバーを右クリック → 「Activity Monitor」
Overview(概要)ペイン — セクション定義
| グラフ名 | 説明 | Oracle AWR 対応 |
|---|---|---|
| % Processor Time | SQL Server プロセスが使用している CPU 使用率(%)の時系列グラフ。高値が続く場合は CPU バウンドなクエリを調査。 | Host CPU |
| Waiting Tasks | 現在待機中のタスク数。急増はリソース競合(ロック・I/O・メモリ)を示す。 | Active Sessions Waiting |
| Database I/O | データベース I/O(MB/sec)の時系列グラフ。読み書きの内訳も確認可能。 | I/O Statistics |
| Batch Requests/sec | SQL バッチの受信件数/秒。SQL Server のスループット指標。 | Execute Count |
Processes(プロセス)ペイン — セクション定義
| 列名 | 説明 |
|---|---|
| Session ID | SPID。セッションの識別子 |
| User | 接続ユーザー名 |
| Task State | RUNNING(CPU 使用中)/ RUNNABLE(スケジュール待ち)/ SUSPENDED(リソース待機) |
| Wait Time (ms) | 現在の待機時間(ミリ秒) |
| Wait Type | 待機の種類(PAGEIOLATCH_SH, LCK_M_X など) |
| Wait Resource | 待機しているリソース(ページ ID、オブジェクト ID など) |
| Blocked By | このセッションをブロックしているセッション ID。0 はブロックなし |
| Head Blocker | ブロッキングチェーンの根元のセッション ID |
Processes ペインで特定のセッションを右クリックすると 「詳細」「実行中の SQL の表示」「実行計画の表示」などのアクションが利用でき、 問題セッションのクエリと実行プランをその場で確認できます。
Resource Waits(リソース待機)ペイン — セクション定義
| 列名 | 説明 | Oracle AWR 対応 |
|---|---|---|
| Wait Category | 待機カテゴリ(Network I/O, Memory, User I/O, Log, Lock など) | Wait Class |
| Cumulative Wait Time (ms/sec) | 前回のサンプリングからの累積待機時間(ms/sec) | Total Wait Time |
| Recent Avg Wait (ms) | 直近サンプリング期間の平均待機時間 | Avg Wait |
| Average Waiter Count | 平均的な待機タスク数 | — |
Data File I/O(データファイル I/O)ペイン — セクション定義
| 列名 | 説明 | Oracle AWR 対応 |
|---|---|---|
| Database | データベース名 | Tablespace |
| File Name | データファイルの物理パス | — |
| Read Activity | 読み取り I/O の MB/sec(棒グラフ表示) | Physical Reads/sec |
| Write Activity | 書き込み I/O の MB/sec(棒グラフ表示) | Physical Writes/sec |
| Response Time (ms) | I/O レスポンスタイム(ミリ秒) | I/O Latency |
Activity Monitor は既定で 10 秒ごとにリフレッシュされ、内部的に複数の DMV クエリを実行します。 高負荷な本番環境では、リフレッシュ間隔を延ばすか(右クリック → 「更新間隔の設定」)、 必要な時だけ開くようにしてください。
2. Performance Dashboard
Performance Dashboard は SSMS に内蔵されたレポートで、 現在のパフォーマンス状況をグラフと表で一覧表示します。
開き方: オブジェクトエクスプローラーでサーバーを右クリック → 「レポート」→ 「標準レポート」→ 「Performance Dashboard」
| セクション名 | 内容 | Oracle AWR 対応 |
|---|---|---|
| CPU Utilization History | SQL Server の CPU 使用率の時系列グラフ(約 256 分間) | DB Time / CPU Time 推移 |
| Waiting Tasks Summary | 現在の待機タスクを wait_type 別に集計したリスト | Top 5 Timed Events |
| Current Expensive Queries | 現在実行中の高コストクエリを CPU・I/O 順にリスト(実行プランへのリンク付き) | SQL ordered by CPU |
| Active Sessions | 現在アクティブなセッション一覧(セッション ID・状態・待機種別など) | Active Session History |
| IO Statistics | データベースファイル別の I/O 統計(読み書き回数・レイテンシ) | I/O Stat by Tablespace |
| Top Cached Queries | プランキャッシュ内の高コストクエリ(CPU・読み取り・実行回数) | SQL Statistics |
3. サーバー標準レポート一覧
開き方: オブジェクトエクスプローラーでサーバーを右クリック → 「レポート」→「標準レポート」
Oracle AWR の Enqueue Statistics / ロック待機セクションに相当します。
4. データベース標準レポート一覧
開き方: オブジェクトエクスプローラーでデータベースを右クリック → 「レポート」→「標準レポート」
| レポート名 | 内容 | Oracle AWR 対応 |
|---|---|---|
| Top Queries by Total CPU Time | プランキャッシュ内でCPU 時間の合計が多い Top SQL リスト。クエリテキストと実行プランへのリンク付き。 | SQL ordered by CPU Time |
| Top Queries by Total I/O | プランキャッシュ内で論理 I/O の合計が多い Top SQL リスト。 | SQL ordered by Gets |
| Top Queries by Total Executions | 実行回数が多い Top SQL リスト。単純だが頻繁に実行される SQL の最適化に有効。 | SQL ordered by Executions |
| Index Usage Statistics | インデックスの使用状況(検索・スキャン・ルックアップ回数)と最終使用日時。未使用インデックスの特定に有効。 | Segment Statistics |
| Index Physical Statistics | インデックスの断片化率とページ数。断片化 > 30% が REBUILD の目安。 | — |
| Missing Indexes | クエリオプティマイザが「あれば有効」と判断したインデックスの候補リスト。影響度スコア付き。 | — |
| Database Transaction Throughput | トランザクション数・ログ書き込み量の時系列グラフ。 | Instance Activity Statistics |
| Disk Usage by Table / Index | テーブル・インデックスのデータ・インデックスサイズ使用量一覧。 | Segment Statistics |
5. Oracle AWR セクションとの対応まとめ
本シリーズ全体を振り返り、Oracle AWR の主要セクションと SQL Server の 5 つの取得方法の対応をまとめます。
| Oracle AWR セクション | DMV | Query Store | XE | PerfMon | SSMS |
|---|---|---|---|---|---|
| Top 5 Timed Events(待機イベント) | ◎ dm_os_wait_stats | ○ wait_stats ビュー | ○ wait_info | ○ Locks/Waits カウンタ | ◎ Activity Monitor Resource Waits |
| SQL Statistics(重い SQL) | ○ dm_exec_query_stats | ◎ runtime_stats | ○ sql_statement_completed | △ | ○ Performance Dashboard / DB レポート |
| I/O 統計 | ◎ dm_io_virtual_file_stats | △ | △ | ◎ PhysicalDisk / Databases | ◎ Activity Monitor Data File I/O |
| メモリ / Buffer Pool | ◎ dm_os_memory_clerks | △ | △ | ◎ Buffer Manager / Memory Manager | ○ Memory Consumption レポート |
| Lock / Enqueue 統計 | ◎ dm_tran_locks | △ | ◎ blocked_process_report | ○ Locks カウンタ | ◎ All Blocking Transactions |
| デッドロック | △ | △ | ◎ xml_deadlock_report | ○ Deadlocks/sec | △ |
| プラン統計 / 実行計画 | ○ dm_exec_cached_plans | ◎ query_store_plan | △ | △ | ○ Performance Dashboard |
| ログ / Redo 統計 | ○ dm_io_virtual_file_stats | △ | △ | ◎ Databases カウンタ(Log Flush) | △ |
| Latch 統計 | ◎ dm_os_latch_stats | △ | △ | ○ Latches カウンタ | △ |
◎ = 主要手段 / ○ = 利用可能 / △ = 限定的
① SSMS Activity Monitor で現在の状況を素早く把握 → ② DMV で待機・ロック・I/O の累積統計を深掘り → ③ Query Store で特定クエリの経時変化を確認 → ④ Extended Events で再現・詳細トレースを実施 → ⑤ PerfMon で OS・SQL Server の長期傾向を検証