1
0

【備忘録】実行計画・統計値の確認方法

Posted at

実行計画とは

  • OracleでSQL文を実行する際に、DBが実行する一連の操作
  • 実行計画を分析することで、SQL文のメンテナンスが出来る
    (SQL文の実行速度を上げるなど)

統計値とは

  • テーブルやインデックス内で、どんな値が、どんな頻度で出現するのかをまとめた情報

実行計画・統計値の確認方法

  • 下記のSQL文について、実行計画・統計値を確認する方法は3パターンある
  • 実際に実行結果に基づく結果なのか、予測した結果なのかはパターンによって異なるので使い分ける必要がある
SELECT * FROM COMPANY WHERE NAME = '会社名A'

1.実行計画:予測値、統計値:予測値

EXPLAIN PLAN FOR SELECT * FROM COMPANY WHERE NAME = '会社名A'
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY()) ;

2.実行計画:実行値、統計値:予測値

SET SERAVEROUTPUT OFF
EXPLAIN PLAN FOR SELECT * FROM COMPANY WHERE NAME = '会社名A'
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR) ;

3.実行計画:実行値、統計値:実行値

SET SERAVEROUTPUT OFF
ALTER SESSION SET STATISTICS_LAVEL=ALL;
EXPLAIN PLAN FOR SELECT * FROM COMPANY WHERE NAME = '会社名A'
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(FORMAT=>'ALL STATS LAST'))) ;

3つの確認方法の使い分けについて

  • SQL文を実行することでDBに負荷がかかる可能性が高い場合は1.を使用する
  • ただし、1.は実際の実行計画・統計値と異なる場合があるので参考程度に使用する
  • より正確なのは2.と3.
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0