WEB开发网
开发学院数据库Oracle 如何在Oracle 10g中跟踪SQL 阅读

如何在Oracle 10g中跟踪SQL

 2007-05-06 12:08:39 来源:WEB开发网   
核心提示: PL/SQL过程已成功完成,我们可以启动对客户机的跟踪:SQL> exec dbms_monitor.client_id_trace_enable(client_id=>'kimberly');PL/SQL过程已成功完成,如何在Oracle 10g中跟踪SQL(

PL/SQL过程已成功完成。

我们可以启动对客户机的跟踪:

SQL> exec dbms_monitor.client_id_trace_enable
(client_id=>'kimberly');

PL/SQL过程已成功完成。

请注意,所有这些设置都是永久性的--所有与该服务和模块关联的会话都会被跟踪,而不仅仅是跟踪当前会话。

为了基于会话ID跟踪SQL,可以查看Oracle企业管理器的Top Sessions页面,或者像您当前做的那样查询V$SESSION视图。

SQL> select sid, serial#, username
from v$session;
SID SERIAL# USERNAME
------ ------- ------------
133 4152 SYS
137 2418 SYSMAN
139 53 KIMBERLY
140 561 DBSNMP
141 4 DBSNMP
. . .
168 1
169 1
170 1
28 rows selected.

通过会话ID(SID)和序号,您可以使用DBMS_MONITOR只对下面的会话启用跟踪:

SQL> exec dbms_monitor.session_trace_enable(139);

PL/SQL过程已成功完成。

该序号默认为该SID的当前序号(除非另外指定),因此如果那就是您想跟踪的会话和序号,那么您就不必查看更多的内容了。还有,默认情况下,WAITS设置为true而BINDS设置为false,因此上面的语法实际上与下面的语法效果相同:

SQL> exec dbms_monitor.session_trace_enable
(session_id=>139, serial_num=>53, waits=>true, binds=>false);

请注意,WAITS和BINDS是相同的参数,您在过去可能已经使用DBMS_SUPPORT和10046事件对它们进行了设置。

如果您正在一个生产环境中工作,那么此时您最好重新运行出错的SQL或应用程序,并且相应地创建跟踪文件。

上一页  1 2 3 4  下一页

Tags:如何 Oracle 跟踪

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接