変更要約: DP-300 第3章を深掘り(図ja化・比較表/シナリオ/FAQ/ひっかけ/深掘り段落を全節に追加)
3.1監視とパフォーマンスの可視化
Azure SQL の監視——メトリック(DTU/CPU/IO)・Azure Monitor / Log Analytics・Query Store・動的管理ビュー(DMV)——でパフォーマンスのボトルネックを見つける方法を理解します。
最適化はまず計測(どこが遅いか)から始まります。Azure SQL はメトリックや Query Store、DMV でパフォーマンスを可視化します。
3.1.1監視の手段
- メトリック:DTU/CPU/IO の使用率などを Azure Monitor で可視化し、しきい値でアラートを出す。
- Query Store:クエリの実行履歴・実行プランを記録し、リグレッション(劣化)検出に使う。
- 動的管理ビュー(DMV):待機統計・ブロッキングなど内部状態を SQL で参照する。
- 診断ログ:Log Analytics に送り KQL で分析・長期保持する。
「クエリの履歴/プラン/劣化検出=Query Store」「DTU/CPU/IO の可視化とアラート=メトリック+Azure Monitor」「待機統計やブロッキング=DMV」「ログを KQL 分析=Log Analytics」 は DP-300 で頻出です。まず計測してボトルネックを特定します。
パフォーマンス劣化の原因特定には、Query Store で「以前は速かったが遅くなったクエリ」を探し、プランの変化を比較するのが有効です。
監視は「リソース」と「クエリ」の両面で見ます。リソース面は メトリック(DTU%・CPU%・データ/ログ IO・ワーカー/セッション・デッドロック)を Azure Monitor で可視化し、しきい値 アラート+アクショングループ で通知。診断ログ(QueryStoreRuntimeStatistics・Errors・Blocks など)は 診断設定 で Log Analytics に送り KQL で深掘りします。クエリ面は Query Store が実行プラン・ランタイム統計・待機統計(wait stats) をデータベース内に保持し、「リグレッションしたクエリ」「最もリソースを消費するクエリ」を可視化、必要なら プラン強制(plan forcing) で安定化します。リアルタイムの内部状態は DMV(sys.dm_exec_requests/sys.dm_os_wait_stats/sys.dm_db_index_usage_stats 等)で確認し、待機タイプから CPU・IO・ロック競合などの原因を切り分けます。ポータルの Intelligent Insights や Database/Query Performance Insight は要点を自動で示します。「まず計測→原因(待機/プラン/インデックス)特定→改善」の順序が鉄則です。
| 見たいもの | 使う手段 | 例 |
|---|---|---|
| リソース使用率の傾向/通知 | メトリック+Azure Monitor | DTU%/CPU% のしきい値アラート |
| クエリの履歴/プラン/劣化 | Query Store | 遅くなったクエリのプラン比較 |
| 今この瞬間の内部状態 | DMV | 待機統計・ブロッキング連鎖 |
| ログの横断分析/長期保持 | Log Analytics(KQL) | 診断ログを KQL で集計 |
シナリオ: 「先週まで速かったレポートが急に遅い」と報告された。→ Query Store で対象クエリの実行プラン履歴を開き、プランが変わった時点を特定。良かったプランに plan forcing して即時安定化し、根本原因(統計の陳腐化やインデックス不足)を DMV/実行プランで確認して恒久対処します。
FAQ: Q. Query Store と DMV はどう使い分ける? → A. Query Store は履歴・プラン・劣化の経時分析、DMV は「今この瞬間」の待機/ブロッキング等のライブ状態に向きます。Q. 待機統計は何に使う? → A. CPU・IO・ロックなどどこで待っているかを示し、ボトルネックの種類を切り分けるのに使います。
ひっかけ: 「過去にさかのぼってクエリのプラン変化を分析するのに DMV を使う」は誤りです。経時のプラン履歴/劣化分析は Query Store。DMV は基本「今この瞬間」の状態(再起動でリセットされるものも)。また「CPU 高騰=必ずインデックス不足」も誤り(待機統計で IO・ロック等を切り分ける)。
3.1.2この節のまとめ
- 監視=メトリック/Azure Monitor・Query Store・DMV・Log Analytics
- まず計測してボトルネックを特定
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. クエリの実行履歴や実行プランを記録し、性能劣化(リグレッション)の特定に使える Azure SQL の機能はどれですか?
Q2. DTU/CPU/IO の使用率を可視化し、しきい値超過でアラートを出したい。何を使いますか?
Q3. 待機統計やブロッキングなどデータベースの内部状態を SQL で参照したい。何を使いますか?

