【Oracle】実行計画SQLPlus

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;