使用oracle的10046事件跟踪SQL语句
2008-11-02 15:26
501 查看
我们在分析应用程序性能问题的时候,更多地需要关注其中SQL语句的执行情况,因为通常应用程序的性能瓶颈会在数据库这边,因此数据库的sql语句是我们优化的重点。利用Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。
具体的方法如下:
1、首先获得spid、sid、serial#,machine为连接oracle的机器名
SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =
b.addr and a.machine='SYS_F85';
SPID SID SERIAL# MACHINE
----------------------------------------------------------------
24722 15 196 SYS_F85
2、利用10046事件开始跟踪
SQL>execute sys.dbms_system.set_ev(15,196,10046,1,'');
PL/SQL procedure successfully completed.
参数说明:
15:SID
196:SERIAL#
注意这里必须以sysdba登录。
3、在应用程序中执行对数据库的操作,比如性能较差的一些查询、插入、删除操作等。
4、关闭事件结束跟踪
SQL>execute sys.dbms_system.set_ev(15,196,10046,0,'');
PL/SQL procedure successfully completed.
5、获得产生的跟踪文件所在的目录
SQL> select value from v$parameter where name = 'user_dump_dest';
VALUE
--------------------------------------------------------------------------------
/oracle/admin/ora9i/udump
转到该目录下可以看到生成了一个ora9i_ora_24722.trc文件,此处的24722即SPID的值。
6、在命令行下执行oracle的tkprof命令,将ora9i_ora_24722.trc转化为文本文件。如:
$ tkprof ora9i_ora_24722.trc ora9i_ora_24722.sql
此时在ora9i_ora_24722.sql文件中,就可以看到刚才执行应用程序时所执行的sql语句的执行次数、
CPU使用时间等数据。
具体的方法如下:
1、首先获得spid、sid、serial#,machine为连接oracle的机器名
SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =
b.addr and a.machine='SYS_F85';
SPID SID SERIAL# MACHINE
----------------------------------------------------------------
24722 15 196 SYS_F85
2、利用10046事件开始跟踪
SQL>execute sys.dbms_system.set_ev(15,196,10046,1,'');
PL/SQL procedure successfully completed.
参数说明:
15:SID
196:SERIAL#
注意这里必须以sysdba登录。
3、在应用程序中执行对数据库的操作,比如性能较差的一些查询、插入、删除操作等。
4、关闭事件结束跟踪
SQL>execute sys.dbms_system.set_ev(15,196,10046,0,'');
PL/SQL procedure successfully completed.
5、获得产生的跟踪文件所在的目录
SQL> select value from v$parameter where name = 'user_dump_dest';
VALUE
--------------------------------------------------------------------------------
/oracle/admin/ora9i/udump
转到该目录下可以看到生成了一个ora9i_ora_24722.trc文件,此处的24722即SPID的值。
6、在命令行下执行oracle的tkprof命令,将ora9i_ora_24722.trc转化为文本文件。如:
$ tkprof ora9i_ora_24722.trc ora9i_ora_24722.sql
此时在ora9i_ora_24722.sql文件中,就可以看到刚才执行应用程序时所执行的sql语句的执行次数、
CPU使用时间等数据。
相关文章推荐
- 使用oracle的10046事件跟踪SQL语句
- Oracle执行语句跟踪(2)——使用10046事件实现语句追踪
- SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划
- Oracle SQL Trace 和 10046 事件跟踪
- Oracle SQL Trace 和 10046 事件跟踪
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- 10046诊断事件——跟踪SQL语句!
- ORACLE追踪应用执行sql语句——10046事件
- Oracle 10046跟踪事件使用方法
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle自带的系统包和过程监控其它会话SQL语句的执行计划等信息
- 怎么使用robomongo查询mongodb(就像用plsql,输入sql语句,查询oracle数据一样)?
- Oracle 查看表空间的大小及使用情况sql语句
- 使用(oracle)sql语句采集数据时,数据之间的分割符号要设置成数据中没有的
- Oracle 查看表空间的大小及使用情况sql语句和oracle增加表空间大小两种实现方法
- Oracle中SQL语句连接字符串的符号使用介绍
- 在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量
- Oracle_学习使用SQL语句六(连接查询)
- SQL Server扩展事件(Extended Events)-- 使用扩展事件跟踪查询语句