使用SQL_TRACE检查少数应用功能涉及的SQL执行计划

本文介绍如何利用AWR和SQL_TRACE工具来定位数据库性能瓶颈,通过查询会话信息、开启SQL_TRACE跟踪特定会话以及分析trace文件中的执行计划来找出性能问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用AWR/statspack是查找全局性能问题的方式,如果已明确是少数的应用功能或模块才有性能问题,则可以在应用端仅重放这部分模块,再使用SQL_TRACE跟踪数据库会话。

查找会话信息(SID和serial#)

点击(此处)折叠或打开

  1. SQL> select sid,serial#,username from v$session where username is not null;

         SID     SERIAL#  USERNAME 
---------- ---------- ------------------------------ 
           7           284   IFLOW 
          11           214   IFLOW 
          12           164   SYS 
          16          1042   IFLOW 

开启SQL_TRACE


点击(此处)折叠或打开

  1. SQL> exec dbms_system.set_sql_trace_in_session(7,284,true);
  2. SQL> exec dbms_system.set_sql_trace_in_session(11,214,true);
  3. SQL> exec dbms_system.set_sql_trace_in_session(16,1042,true);
应用运行一段时间后,关闭SQL_TRACE

点击(此处)折叠或打开

  1. SQL> exec dbms_system.set_sql_trace_in_session(7,284,false);
  2. SQL> exec dbms_system.set_sql_trace_in_session(11,214,false);
  3. SQL> exec dbms_system.set_sql_trace_in_session(16,1042,false);
查找trace文件,分析执行计划(trace文件的确定见:http://blog.itpub.net/22621861/viewspace-1279733/)


点击(此处)折叠或打开

  1. ********************************************************************************
  2. select auditstatus,categoryid,auditlevel from
  3.  categoryarticleassign a,category b where b.id=a.categoryid and articleId=
  4.   20030700400141 and auditstatus>0
  5.  
  6. call count cpu elapsed disk query current rows
  7. ------- ------ -------- ---------- ---------- ---------- ---------- ----------
  8. Parse 1 0.00 0.00 0 0 0 0
  9. Execute 1 0.00 0.00 0 0 0 0
  10. Fetch 1 0.81 0.81 0 3892 0 1
  11. ------- ------ -------- ---------- ---------- ---------- ---------- ----------
  12. total 3 0.81 0.81 0 3892 0 1
  13. ********************************************************************************




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

转载于:http://blog.itpub.net/22621861/viewspace-1518885/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值