DataBase  /  SQL Server  /  レポート取得ガイド

SQL Server AWR 相当レポート — はじめに・取得方法の概要と Oracle AWR 対応表

Oracle の AWR(Automatic Workload Repository)レポートで得られる性能情報を SQL Server で取得するには、 いくつかの異なる手段を組み合わせる必要があります。 本シリーズでは、DMV・Query Store・Extended Events・PerfMon・SSMS 標準レポートの 5 つの取得方法を それぞれ独立した記事で解説します。このガイドではその全体像と Oracle AWR との対応表を整理します。

1. SQL Server に AWR が存在しない理由

Oracle の AWR は、Diagnostics Pack ライセンスが必要な有償機能ですが、 指定スナップショット間の性能情報(待機イベント・SQL 統計・I/O・メモリ等)を 一枚のレポートとして出力できる非常に強力なツールです。

SQL Server には AWR に相当する「単一の統合レポート機能」は標準では存在しません。 代わりに、目的別に分散した複数の機能を組み合わせることで、 AWR と同等またはそれ以上の情報を取得できます。 SQL Server 2016 以降では Query Store の追加により、Oracle AWR の SQL 統計セクションに相当する ワークロード履歴管理が大幅に強化されています。

💡 SQL Server 2019 / 2022 でより充実
Query Store の機能拡張(Wait Statistics の記録、Forced Plan の改善など)や、 Intelligent Query Processing により、AWR に近い情報を SQL 単位で取得しやすくなっています。

2. 5 つの取得方法の概要

Method 01
DMV(動的管理ビュー)
sys.dm_os_wait_stats・sys.dm_exec_query_stats など、 インスタンス起動後の累積統計をリアルタイムに参照する SQL ベースの手段。 Oracle AWR の DB/Wait/SQL セクションに最も近い情報源。
Method 02
Query Store
SQL Server 2016 以降で利用可能。クエリごとの実行統計・プラン履歴を データベース内に自動保存。特定期間の SQL 性能比較や プランのリグレッション検知に最適(Oracle AWR の SQL Statistics 相当)。
Method 03
Extended Events
SQL Server 標準の軽量トレースフレームワーク。 イベント(SQL 実行完了・待機・デッドロックなど)を ファイルまたはリングバッファに記録。Oracle の Event Monitor 相当。
Method 04
Performance Monitor(PerfMon)
Windows 標準の性能カウンタ収集ツール。 Buffer Manager・SQL Statistics・Locks・Databases など SQL Server 固有のカウンタも収集可能。定期的な傾向分析に有効。
Method 05
SSMS 標準レポート
SQL Server Management Studio に内蔵された GUI レポート群。 Activity Monitor・Performance Dashboard・All Blocking Transactions など、 コマンドなしで視覚的に確認できる。初期調査に最適。

3. Oracle AWR セクションと SQL Server の対応表

以下は Oracle AWR の主要セクションと SQL Server の取得方法の対応表です。 1 つの AWR セクションに複数の SQL Server 手段が対応する場合があります。

Oracle AWR セクション SQL Server の対応手段 主な DMV / 機能名
Report Summary — DB Time / Elapsed Time DMV / PerfMon sys.dm_os_wait_stats
SQL Server:SQL Statistics カウンタ
Top 5 Timed Events(待機イベント) DMV / Query Store sys.dm_os_wait_stats
sys.query_store_wait_stats
SQL Statistics — Top SQL by Elapsed Time / CPU DMV / Query Store sys.dm_exec_query_stats
sys.query_store_runtime_stats
SQL Statistics — Top SQL by Logical Reads DMV / Query Store sys.dm_exec_query_stats (logical_reads)
sys.query_store_runtime_stats
Instance Activity — Redo / Undo 統計 DMV / PerfMon sys.dm_io_virtual_file_stats
SQL Server:Databases カウンタ
Buffer Pool / SGA メモリ統計 DMV / PerfMon sys.dm_os_buffer_descriptors
sys.dm_os_memory_clerks
SQL Server:Buffer Manager カウンタ
I/O 統計 DMV / PerfMon sys.dm_io_virtual_file_stats
sys.dm_os_wait_stats(I/O 待機)
Latch / Mutex 統計 DMV sys.dm_os_latch_stats
sys.dm_os_spinlock_stats
Enqueue / Lock 統計 DMV / Extended Events sys.dm_tran_locks
sys.dm_os_waiting_tasks
XE: lock_deadlock イベント
Segment Statistics DMV sys.dm_db_index_usage_stats
sys.dm_db_partition_stats
Advisory(PGA / SGA Advisor) DMV / SSMS sys.dm_os_memory_cache_counters
SSMS: Memory Usage レポート
Undo 統計 DMV sys.dm_tran_version_store_space_usage
sys.dm_db_xtp_transactions
デッドロック グラフ Extended Events XE: xml_deadlock_report
system_health セッション
実行計画(SQL Plan Statistics) DMV / Query Store sys.dm_exec_cached_plans
sys.query_store_plan

4. どの方法をいつ使うか — 使い分けガイド

シナリオ 推奨手段 理由
現在のボトルネックを即座に確認したい DMV / SSMS Activity Monitor インスタンス累積値をリアルタイムに参照できる。SSMS は GUI で直感的。
昨日から今日にかけて重くなった SQL を調べたい Query Store 時間帯別・クエリ別の実行統計履歴が自動保存されており、期間比較が容易。
特定の SQL 実行や待機イベントを詳細にトレースしたい Extended Events イベント駆動型のため軽量。SQL Profiler の代替として標準推奨。
CPU・メモリ・I/O の傾向を長期的に記録したい PerfMon Windows 標準ツールで OS・SQL Server を一括収集。データコレクタで自動化可能。
定期的な性能レポートを非エンジニアに共有したい SSMS 標準レポート GUI でドリルダウンでき、コマンドなしで主要指標を可視化できる。
⚠️ DMV の累積値に注意
sys.dm_os_wait_stats などの DMV は SQL Server の起動(または DBCC SQLPERF による手動リセット)からの累積値です。 Oracle AWR のようなスナップショット間の差分を自動取得する機能は DMV 単体にはなく、 定期的に値を取得して差分を計算するスクリプトが必要です。 Query Store はこの課題を解決しており、期間指定での統計閲覧が可能です。

5. シリーズ構成

PARTタイトル主なトピック
01 はじめに(本記事) 取得方法の全体像・Oracle AWR 対応表・使い分けガイド
02 DMV(動的管理ビュー)による取得とセクション定義 主要 DMV 一覧・SQL クエリ集・各セクションの意味
03 Query Store による取得とセクション定義 有効化手順・ビュー一覧・期間指定クエリ・SSMS GUI 操作
04 Extended Events による取得とセクション定義 セッション作成・イベント一覧・XDL ファイル解析
05 Performance Monitor(PerfMon)による取得とセクション定義 主要カウンタ一覧・データコレクタ設定・しきい値の目安
06 SSMS 標準レポートによる取得とセクション定義 Activity Monitor・Performance Dashboard・各レポートの読み方