SQL及SESSION 跟踪分析

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的执行计划
  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28275505/viewspace-1834756/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28275505/viewspace-1834756/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值