使用AWR/statspack是查找全局性能问题的方式,如果已明确是少数的应用功能或模块才有性能问题,则可以在应用端仅重放这部分模块,再使用SQL_TRACE跟踪数据库会话。
查找会话信息(SID和serial#)
SID SERIAL# USERNAME
---------- ---------- ------------------------------
7 284 IFLOW
11 214 IFLOW
12 164 SYS
16 1042 IFLOW
开启SQL_TRACE
应用运行一段时间后,关闭SQL_TRACE
查找trace文件,分析执行计划(trace文件的确定见:http://blog.itpub.net/22621861/viewspace-1279733/)
查找会话信息(SID和serial#)
点击(此处)折叠或打开
- 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> exec dbms_system.set_sql_trace_in_session(7,284,true);
-
SQL> exec dbms_system.set_sql_trace_in_session(11,214,true);
- SQL> exec dbms_system.set_sql_trace_in_session(16,1042,true);
点击(此处)折叠或打开
-
SQL> exec dbms_system.set_sql_trace_in_session(7,284,false);
-
SQL> exec dbms_system.set_sql_trace_in_session(11,214,false);
- SQL> exec dbms_system.set_sql_trace_in_session(16,1042,false);
点击(此处)折叠或打开
-
********************************************************************************
-
select auditstatus,categoryid,auditlevel from
-
categoryarticleassign a,category b where b.id=a.categoryid and articleId=
-
20030700400141 and auditstatus>0
-
-
call count cpu elapsed disk query current rows
-
------- ------ -------- ---------- ---------- ---------- ---------- ----------
-
Parse 1 0.00 0.00 0 0 0 0
-
Execute 1 0.00 0.00 0 0 0 0
-
Fetch 1 0.81 0.81 0 3892 0 1
-
------- ------ -------- ---------- ---------- ---------- ---------- ----------
-
total 3 0.81 0.81 0 3892 0 1
- ********************************************************************************
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-1518885/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22621861/viewspace-1518885/