メモ: Oracleの実行コマンドについて

基本設定:

いつも使用しているコマンド:

SET LINESIZE 300
SET PAGESIZE 500
SET COLSEP ,
SET TRIMSPOOL ON
SET TERMOUT ON
SET ECHO ON

起動時ファイル指定実行:

コマンド実行フォルダ直下にlogin.sqlに起動コマンドを記入し、

sqlplus [username]/'[password]'@[hostname]:[port]/[service name] @./login.sql

SQL実行計画

索引確認

select i.table_name, i.index_name, i.uniqueness, c.column_name
from user_indexes i, user_ind_columns c
where i.index_name = c.index_name
  and i.table_name = '【TABLE_NAME】'
order by index_name,table_name,column_position;

通常セッションモード

ALTER SESSION SET STATISTICS_LEVEL=TYPICAL;

TRACE ONLY MODE

SET AUTOTRACE TRACEONLY;
[  SQL  ]
SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS LAST'));

実行統計

ALTER SESSION SET STATISTICS_LEVEL=ALL;
[ SQL ] 
SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS LAST'));

実行統計は、oracleの内部でSQL文の解釈方法を表示してくれるものである。 データの走査方法(full scan, idx scanなど)や走査順番を階層的に表示してくれる。 それぞれのステップで掛かってる時間も確認したいのなら、trace onlyモードにして実行計画を確認できる。