SQL Trace的使用示例
2006-04-13 16:54
232 查看
SQL Trace的方法有好几种,详细可以参考
http://www.eygle.com/case/Use.sql_trace.to.Diagnose.database.htm
下面介绍一个基本的详细操作过程.
以sys用户登录SQL PLUS
SQL> alter system set timed_statistics=true;
查询获得需要跟踪的session信息:
SQL> select sid,serial#,username from v$session where username is not null;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
8 2041 SYS
9 437 ZLHIS
记下要跟踪的操作员的那一行信息,把sid,serial#,username填入下面的命令中的对应参数中
执行跟踪:
SQL> exec dbms_system.set_ev(9,437,10046,12,'ZLHIS');
PL/SQL procedure successfully completed.
12 表示跟踪SQL,显示绑定变量值,并显示等待事件(9i支持)
操作员在前台操作,例如:完成一笔收费业务
结束跟踪:
SQL> exec dbms_system.set_ev(9,437,10046,0,'ZLHIS');
SQL> alter system set timed_statistics=false;
然后,在Oracle服务器的udump目录就会生成跟踪文件
D:\Oracle\admin\zyk\udump\ORA02016.TRC
在操作系统命令行下用Oracle的工具tkprof分析跟踪文件
c:\>tkprof d:\Oracle\admin\zyk\udump\ORA02016.TRC d:\Oracle\admin\zyk\udump\ORA02016.txt sort=fchela
参数sort=fchela指按获取数据的等待时间排序(直接输入tkprof可以查到详细参数信息)
再查看分析后的文件
d:\Oracle\admin\zyk\udump\ORA02016.txt
找出其中的异常SQL,或者可以搜索关键字ACCESS FULL,可以快速发现全表扫描的SQL,从而确定哪些索引失效
http://www.eygle.com/case/Use.sql_trace.to.Diagnose.database.htm
下面介绍一个基本的详细操作过程.
以sys用户登录SQL PLUS
SQL> alter system set timed_statistics=true;
查询获得需要跟踪的session信息:
SQL> select sid,serial#,username from v$session where username is not null;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
8 2041 SYS
9 437 ZLHIS
记下要跟踪的操作员的那一行信息,把sid,serial#,username填入下面的命令中的对应参数中
执行跟踪:
SQL> exec dbms_system.set_ev(9,437,10046,12,'ZLHIS');
PL/SQL procedure successfully completed.
12 表示跟踪SQL,显示绑定变量值,并显示等待事件(9i支持)
操作员在前台操作,例如:完成一笔收费业务
结束跟踪:
SQL> exec dbms_system.set_ev(9,437,10046,0,'ZLHIS');
SQL> alter system set timed_statistics=false;
然后,在Oracle服务器的udump目录就会生成跟踪文件
D:\Oracle\admin\zyk\udump\ORA02016.TRC
在操作系统命令行下用Oracle的工具tkprof分析跟踪文件
c:\>tkprof d:\Oracle\admin\zyk\udump\ORA02016.TRC d:\Oracle\admin\zyk\udump\ORA02016.txt sort=fchela
参数sort=fchela指按获取数据的等待时间排序(直接输入tkprof可以查到详细参数信息)
再查看分析后的文件
d:\Oracle\admin\zyk\udump\ORA02016.txt
找出其中的异常SQL,或者可以搜索关键字ACCESS FULL,可以快速发现全表扫描的SQL,从而确定哪些索引失效
相关文章推荐
- 使用sql语句创建和删除约束示例代码
- 使用UPDATE进行编号重排的处理示例.sql
- 使用SQL_TRACE进行数据库诊断
- 使用SQL_TRACE进行数据库诊断
- ORACLE中SQLPLUS中的trace的使用
- SQL_TRACE的使用
- Oracle学习笔记之SQL_TRACE和TKPROF使用
- SQL Profiler Trace中的CPU和Duration分别使用的是什么单位
- SQL中游标的使用示例
- 使用临时表进行编号重排的处理示例.sql
- SQL游标(cursor)详细说明及内部循环使用示例
- SQL 游标 contact_cursor 使用示例
- 6.1.3 使用UNION实现库存报表的示例.sql
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- ORACLE中SQL TRACE和TKPROF的使用
- sql查询语句中使用if示例
- SQL中case when的两种使用方法示例
- 2.2.4 CONVERT在日期转换中的使用示例.sql
- 使用trace_sql跟踪用户sql