😎
SQL実行計画の簡単な読み方
SQL実行計画の簡単な読み方
OracleでSQL性能問題を確認するとき、EXPLAIN PLANやDBMS_XPLANを使うことがあります。
しかし、初心者は項目が多くて混乱しがちです。
ここでは現場で使える「簡単な読み方」をまとめます。
1. 実行計画で見るべき順序
-
アクセス方法
- FULL TABLE SCAN / INDEX RANGE SCAN など
- フルスキャンは件数が多い場合に負荷の原因になりやすい
-
結合方法(JOIN)
- NESTED LOOP / HASH JOIN / MERGE JOIN
- 大量データの結合方法で性能が大きく変わる
-
コスト(COST列)
- 相対的な負荷の目安
- 高いステップがボトルネックになりやすい
2. 現場での簡単チェックポイント
- フルスキャンが多いテーブルは負荷注意
- インデックス利用できているか確認
- 結合順序やデータ件数のバランスを意識
初動では深追いせず、負荷になりやすい箇所だけ押さえることが効率的です。
3. 改善の第一歩
- WHERE条件やインデックスの確認
- SQLを小さく実行して時間やIOを測定
- 改善前後で実行計画や負荷を比較
これだけでも、初動のチューニング効果が分かります。
まとめ
SQL実行計画を読むときは、
- アクセス方法
- 結合方法
- コスト
この3つを順に確認するだけで、性能問題のボトルネックを素早く特定できます。
Discussion