1,set autotrace on/traceonly ..
SQL> @$ORACLE_HOME/rdbms/admin/utlxplan
SQL> @$ORACLE_HOME/sqlplus/admin/plustrce
SQL> grant plustrace to public;
2,explain plan for select * from table_demo
查看执行计划 select * from table(dbms_xplan.display);
3,SQL_TRACE 跟踪当前session的活动
启动:alter session set sql_trace=true;
.......sql 或 事物操作..........
关闭:alter session set sql_trace=flase;
追踪文件在select * from v$diag_info; 的default trace file 目录中。
4,10046和10053事件,用于SQL追踪
10046 level 有4个级别 1,相当于上面的sql_trace 4,在level 1上增加了绑定变量的追踪
8,在level 1上增加了wait事件的追踪 12,相当于8+4;
10053 level 有两个级别1和2,2没有1的内容详细 用于跟踪sql语句成本计算的内部事件
开启:alter session set events '10046 trace name context forever,level 12';
---------sql 或 事物操作---------
关闭:alter session set events '10046 trace name context off';
tkprof 格式化trace文件 便于阅读 参数 sys=no 不看sys的信息;
5,从V$SQL_PLAN 视图获得cursor中的执行计划
首先,收集统计信息 analyze talbe demo compute statistics; ---只收集表的统计信息
exec dbms_stats.gather_tables_stats(user,'demo',cascade=>true);---cascade级联收集索引统计信息
其次,select sql_id from v$sql where sql_text like 'select * from demo'; ---找到SQL_ID
最后,select plan_table_output from table(dbms_xplan.display_cursor('SQL_ID'));
6,对某SSION跟踪
exec dbms_system.set_sql_trace_in_session(sid,serial#,true|false);
trace文件 /u01/diag/ORACLE_SID/ORACLE_SID/trace/*
select 'oracle_ora_'||spid||'.trc' from v$process where addr =(select paddr from v$session where sid=xxx);
7,从AWR或EM 或第三方工具 中获得SQL的执行计划
SQL> @$ORACLE_HOME/rdbms/admin/utlxplan
SQL> @$ORACLE_HOME/sqlplus/admin/plustrce
SQL> grant plustrace to public;
2,explain plan for select * from table_demo
查看执行计划 select * from table(dbms_xplan.display);
3,SQL_TRACE 跟踪当前session的活动
启动:alter session set sql_trace=true;
.......sql 或 事物操作..........
关闭:alter session set sql_trace=flase;
追踪文件在select * from v$diag_info; 的default trace file 目录中。
4,10046和10053事件,用于SQL追踪
10046 level 有4个级别 1,相当于上面的sql_trace 4,在level 1上增加了绑定变量的追踪
8,在level 1上增加了wait事件的追踪 12,相当于8+4;
10053 level 有两个级别1和2,2没有1的内容详细 用于跟踪sql语句成本计算的内部事件
开启:alter session set events '10046 trace name context forever,level 12';
---------sql 或 事物操作---------
关闭:alter session set events '10046 trace name context off';
tkprof 格式化trace文件 便于阅读 参数 sys=no 不看sys的信息;
5,从V$SQL_PLAN 视图获得cursor中的执行计划
首先,收集统计信息 analyze talbe demo compute statistics; ---只收集表的统计信息
exec dbms_stats.gather_tables_stats(user,'demo',cascade=>true);---cascade级联收集索引统计信息
其次,select sql_id from v$sql where sql_text like 'select * from demo'; ---找到SQL_ID
最后,select plan_table_output from table(dbms_xplan.display_cursor('SQL_ID'));
6,对某SSION跟踪
exec dbms_system.set_sql_trace_in_session(sid,serial#,true|false);
trace文件 /u01/diag/ORACLE_SID/ORACLE_SID/trace/*
select 'oracle_ora_'||spid||'.trc' from v$process where addr =(select paddr from v$session where sid=xxx);
7,从AWR或EM 或第三方工具 中获得SQL的执行计划
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28275505/viewspace-1834756/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28275505/viewspace-1834756/