使用AWR/statspack是查找全局性能问题的方式,如果已明确是少数的应用功能或模块才有性能问题,则可以在应用端仅重放这部分模块,再使用SQL_TRACE跟踪数据库会话。
查找会话信息(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_TRACE
-
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_TRACE
-
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);
查找trace文件,分析执行计划(trace文件的确定见:http://blog.itpub.net/22621861/viewspace-1279733/)
-
********************************************************************************
-
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博客 ” ,链接:https://blog.itpub.net/22621861/viewspace-1518885/
,如需转载,请注明出处,否则将追究法律责任。