Oracleの実行計画を取得した時のメモ。
sqlplus DBユーザ名/DBパス名@サービス名
SQLPlusだけで実行計画を取得します。
通常のSQLPlusではautotraceをoff、termoutをonにすると綺麗に取得できます。
-- ログ初期設定 set autotrace on set echo off set timing on set time on set termout off set feedback 1 set colsep 't' set pagesize 30000 set linesize 30000 set trimspool on col PLAN_PLUS_EXP format a200; spool trace_test.log; prompt ====================== prompt 実行計画 prompt ====================== prompt 【対応前】 SELECT XXXX FROM TEST_TBL; prompt ====================== prompt 実行計画 prompt ====================== prompt 【対応後】 SELECT YYYY FROM TEST_TBL; set autotrace off spool off;
2回以上同じSQLを実行する際は以下のコマンドを実行し、
キャッシュと共有プールから履歴を削除すると良い。
ただし、他の人がSQLを実行していると影響がでてしまうので、
環境を占有していることが条件となる。
ALTER SYSTEM FLUSH BUFFER_CACHE; ALTER SYSTEM FLUSH SHARED_POOL;