用oracle trace 来跟踪session

http://tolywang.itpub.net/post/48/414520 1.在数据库安装的电脑上,使用SQL plus 用 SYSDBA 身份连接到数据库. 2.找到要进行跟踪的会话. select sid,serial#,username from v$session ; 3.启用相关会话的SQL trace . exec dbms_system.set_sql_trace_in_session(7,284,true) 4.从指定SESSION 运行一些程序过程. 5.停止会话跟踪. exec dbms_system.set_sql_trace_in_session(7,284,false) 6.使用tkprof 程序对跟踪到的文件进行格式化. tkprof aaa.trc aaa.txt 7.查看aaa.txt就可以了. ----如果是跟踪本SESSION,可以用: dbms_session.set_sql_trace(true); dbms_session.set_sql_trace(false); 来做. tolywang 发表于:2007.11.21 08:57 ::分类: ( Oracle数据库管理 ) ::阅读:(2997次) :: 评论 (2) :: 引用 (0) re: 用oracle trace 来跟踪session [回复] SQL_TRACE跟踪SQL语句,要使用SQL_TRACE,必须使用SYS用户,使用SYSDBA身份登录,下列的命令使用SQL*PLUS或pl/sql developer的Command窗口。 以跟踪INTOOLS为例,首先使用如下SQL语句获取INTOOLS的SESSION信息 select sid, serial#, username from v$session; 假设取到的INTOOLS登录session的sid = 9, serial# = 71,则执行下列命令对该session进行监听 exec dbms_system.set_sql_trace_in_session(9,71,true) 然后操作INTOOLS, 操作完成后使用下面命令关闭监听 exec dbms_system.set_sql_trace_in_session(9,71,false) 则在%ORACLE_HOME%ADMIN[服务名]udump目录下生成最新的.trc跟踪文件,可使用ORACLE提供的工具程序tkproc将.trc文件解析为更易读的文件: tkproc [.trc文件路径] [目标文件路径] 后面还可加上如下一些参数,其中比较有用的一个排序选项是fchela,即按照elapsed timefetching来对分析的结果排序(记住要设置初始化参数time_statistics=true),生成的.prf文件将把最消耗时间的 sql放在最前面显示。另外一个有用的参数就是sys,这个参数设置为no可以阻止所有以sys用户执行的sql被显示出来,这样可以减少分析出来的文件 的复杂度,便于查看。 tolywang 评论于:2007.11.23 09:12 re: 用oracle trace 来跟踪session [回复] 1.select sid,serial#,username,osuser,machine from v$session;查询session的sid,serial# 2.exec dbms_system.set_sql_trace_in_session(141,6,true);开始跟踪 3.exec dbms_system.set_sql_trace_in_session(141,6,false) 停止跟踪 4.tkprof *.trc *.txt 5.查看文件 tolywang 评论于:2007.11.23 09:15
posted @ 2012-07-16 15:49  adodo1  Views(358)  Comments(0Edit  收藏  举报