Welcome 微信登录

首页 / 数据库 / MySQL / Oracle SQL Trace 和 10046 事件

一. SQL_TRACE当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL执行的整个过程输出到一个trace文件中,我们可以读这个trace 文件来了解在这个SQL执行过程中Oracle 都做了哪些操作。 可以通过sql命令启动SQL_TRACE,或者在初始化参数里面。 SQL>alter session set sql_trace=true;或者SQL> alter database set sql_trace=true; 这两条命令的区别:在session级别设置,只对当前session进行跟踪,在实例级别,会对实例上所有的SQL做跟踪,这种方式跟踪的SQL太多,代价是非常大的,所有很少用。 如果是在初始化文件里面设置,只需要在参数文件里添加一个sql_trace 参数即可。  示例: 1.确定当前的trace文件。 1.1通过设置trace 文件标识SQL> alter session set tracefile_identifier="安庆怀宁";会话已更改。 设置标识的目的就是方便我们查找生成的trace文件。我们只需要在trace目录查找文件名里带有标识的文件即可。 在Oracle 10g中,SQL_TRACE生成的trace文件默认路劲是$ORACLE_BASE/admin/SID/udump. 到了11g,trace 默认路径在:$ORACLE_BASE/diag/rdbms/orcl/orcl/trace目录下.  1.2直接用如下SQL直接查出,当前的trace文件名。/* Formatted on 2010/9/1 23:56:24 (QP5 v5.115.810.9015) */SELECTd.VALUE|| "/"|| LOWER(RTRIM(i.INSTANCE,CHR(0)))|| "_ora_"|| p.spid|| ".trc"AS"trace_file_name"FROM(SELECTp.spidFROMv$mystat m, v$session s, v$process pWHEREm.statistic# =1AND s.SID=m.SIDANDp.addr = s.paddr)p,(SELECTt.INSTANCEFROMv$thread t, v$parameter vWHEREv.NAME="thread"AND(v.VALUE=0ORt.thread# =TO_NUMBER(v.VALUE))) i,(SELECTVALUEFROMv$parameterWHERENAME="user_dump_dest") d; SQL> SELECTd.VALUE2|| "/"3|| LOWER (RTRIM (i.INSTANCE, CHR (0)))4|| "_ora_"5|| p.spid6|| ".trc" as "trace_file_name"7FROM (SELECT p.spid8FROM v$mystat m, v$session s, v$process p9WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,10(SELECT t.INSTANCE11FROM v$thread t, v$parameter v12WHERE v.NAME = "thread"13AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,14(SELECT VALUE15FROM v$parameter16WHERE NAME = "user_dump_dest") d; trace_file_name--------------------------------------------------------------------------------d:/app/administrator/diag/rdbms/orcl/orcl/trace/orcl_ora_3048.trc 2.启动SQL_TRACESQL> alter session set sql_trace=true;会话已更改。 3.进行相关事务操作SQL> select * from t; 4.关闭SQL_TRACESQL> alter session set sql_trace=false;会话已更改。 注意,这里是显示的关闭SQL_TRACE,在session级别,也可以直接退出SQLPLUS来终止SQL_TRACE。
  • 1
  • 2
  • 3
  • 下一页
如何对 Oracle 数据泵(expdp/impdp) 进行 debugMySQL 权限管理的注意事项相关资讯      Oracle SQL Trace  Oracle 10046  10046 事件 
  • Oracle 10046事件  (03/05/2015 18:56:15)
  • Oracle 10046跟踪事件操作步骤  (10/07/2013 13:37:07)
  • Oracle的10046事件跟踪简述  (07/10/2013 08:19:26)
  • 从10046 Trace RAW File看Cursor  (05/07/2014 06:13:17)
  • Oracle 11g新SQL Trace 10046方法  (09/08/2013 20:17:06)
本文评论 查看全部评论 (0)
表情: 姓名: 字数