select * from V$SYS_OPTIMIZER_ENV;
select * from V$SES_OPTIMIZER_ENV:
select * from v$
sql_hint;
●各オブジェクトのSELECTIVITY確認
セレクティビティ(選択率) = 条件を適用した結果の行数 / 全体の行数
カーディナリティ = 表の行数 × セレクティビティ
select count(distinct 列名1), count(distinct 列名2), … count(distinct 列名N)
from 対象表名
●plan_tableの作成
●実行計画の生成
●実行計画確認
auto trace
SELECT PLAN_TABLE_OUTPUT FROM TABLE(
DBMS_XPLAN.DISPLAY());
select plan_table_output from table(
dbms_xplan.display_plan(format=>'ALL'));
select * from v$
sql_plan;
@?/
rdbms/admin/UTLXPLS.
SQL --シングル用
@?/
rdbms/admin/UTLXPLP.
SQL --パラレル用
●PLAN_TABLE別名
CREATE OR REPLACE PUBLIC SYNONYM my_plan_table for plan_table$
select * from v$
sql;
select * from v$sqlarea;
set pages 50000
set lines 30000
set trimspool on
set timing on
set time on
set autot on
spool <スプールファイル名>
<対象
SQL実行>
spool off
col sid for 99999
col serial# for 99999
col
sql_text for a64
select s.sid,s.serial#,t.
sql_text from v$session s,v$sqltext t where s.
sql_id=t.
sql_id and s.status = 'ACTIVE' order by 1,2,t.piece;
col sid-s# for a10
col i.c for a3
col
sql_text for a64
select s.inst_id||'.'||s.con_id as "i.c",s.sid||','||s.serial# as "sid-s#",t.
sql_text from gv$session s,gv$sqltext t where s.
sql_id=t.
sql_id and s.status = 'ACTIVE' order by 1,2,t.piece;