Oracleで実行計画を取得する(DBMS_XPLAN.DISPLAY_CURSOR)

--DBMS_XPLAN.DISPLAY_CURSOR使用上の注意点いくつか
col DISPLAY_CURSOR new_value DISPLAY_CURSOR format a100
select 'DISPLAY_CURSOR' || to_char(sysdate,'_YYYYMMDDHH24MISS') || '.log' DISPLAY_CURSOR from dual;
spool &DISPLAY_CURSOR
set serveroutput on  linesize 1000 trims on
SELECT t.* 
    FROM v$sql s,  table(dbms_xplan.display_cursor(s.sql_id,s.child_number)) t
    WHERE s.sql_id = '0na4jym1rxxk5';
spool off
exit

SELECT t.* 
    FROM v$sql s,  table(dbms_xplan.display_cursor(s.sql_id,s.child_number,format=>'ALL ALLSTATS LAST')) t
    WHERE s.sql_id = '12uf1gukskvjh';

http://docs.oracle.com/cd/E16338_01/appdev.112/b56262/d_xplan.htm

DISPLAY_CURSORファンクション
このテーブル・ファンクションは、カーソル・キャッシュにロードされている任意のカーソルの実行計画を表示します。実行計画に加えて、様々な計画統計(I/O、メモリー、タイミングなど)をレポートできます(V$SQL_PLAN_STATISTICS_ALL VIEWSに基づく)。
構文
DBMS_XPLAN.DISPLAY_CURSOR(
   sql_id           IN  VARCHAR2  DEFAULT  NULL,
   cursor_child_no  IN  NUMBER    DEFAULT  0, 
   format           IN  VARCHAR2  DEFAULT  'TYPICAL');