`

SQL-Trace、10046

阅读更多
SQL_TRACE命令会将SQL执行的整个过程输出到一个trace文件中

alter session set sql_trace=true;

或者

alter database set sql_trace=true;

 

确定当前的trace文件

默认路径:

10g  --   $ORACLE_BASE/admin/SID/udump

11g  --   $ORACLE_BASE/diag/rdbms/orcl/orcl/trace

 

/* Formatted on 2010/9/1 23:56:24 (QP5 v5.115.810.9015) */

SELECT      d.VALUE

         || '/'

         || LOWER(RTRIM(i.INSTANCE,CHR(0)))

         || '_ora_'

         || p.spid

         || '.trc'

            AS"trace_file_name"

  FROM   (SELECT   p.spid

            FROM   v$mystat m, v$session s, v$process p

           WHERE   m.statistic# =1AND s.SID=m.SIDANDp.addr = s.paddr)p,

         (SELECT   t.INSTANCE

            FROM   v$thread t, v$parameter v

           WHERE   v.NAME='thread'

                   AND(v.VALUE=0ORt.thread# =TO_NUMBER(v.VALUE))) i,

         (SELECT   VALUE

            FROM   v$parameter

           WHERE   NAME='user_dump_dest') d;

---设置文件标识然后find查找

alter session set tracefile_identifier='xxxxx';

 trc中说明:

PARSING IN CURSOR 部分:

        Len: 被解析SQL的长度

        Dep: 产生递归SQL的深度

        Uiduser id

        Otc: Oracle command type 命令的类型

        Lid: 私有用户id

        Tim:时间戳

        Hv hash value

        AdSQL address

 

PARSE,EXEC,FETCH 部分

        C: 消耗的CPU time

        Eelapsed time 操作的用时

        P: physical reads 物理读的次数

        Cr: consistent reads 一致性方式读取的数据块

        Cucurrent 方式读取的数据块

        Miscursor misss in cache 硬分析次数

        R: -rows 处理的行数

        Dep: depth 递归SQL的深度

        Og optimizer goal 优化器模式

        Timtimestamp时间戳

 

STATS 部分:

        Id: 执行计划的行源号

        Cnt:当前行源返回的行数

        Pid:当前行源号的父号

        Pos:执行计划中的位置

        Obj:当前操作的对象id(如果当前行原始一个对象的话)

        Op:当前行源的数据访问操作

 

 ------------------========================================

10046事件按照收集信息内容,可以分成4个级别:

        Level 1等同于SQL_TRACE 的功能

        Level 4Level 1的基础上增加收集绑定变量的信息

        Level 8Level 1 的基础上增加等待事件的信息

        Level 12:等同于Level 4+Level 8, 即同时收集绑定变量信息和等待事件信息。

 

对当前session 使用10046事件

        SQL>alter session set events 10046 trace name context forever, level 12; --启动10046事件

        执行相关事务

        SQL>alter session set events 10046 trace name context off; -- 关闭10046事件

 

该事件收集的信息也是放在trace文件中,查看trace文件的方法,参考第二节:TKPROF 工具。

SQL_TRACE跟踪

SQL> select sid,serial# from v$session where SID=xx;  

SQL> execute dbms_system.set_sql_trace_in_session(sid, serial#,true);  -- 启动SQL_TRACE

SQL> execute dbms_system.set_sql_trace_in_session(sid, serial#,false); -- 关闭SQL_TRACE

 

使用10046 事件跟踪

SQL> exec dbms_monitor.session_trace_enable(sid, serial#,waits=>true,binds=>true);  -- 启动trace

SQL> exec dbms_monitor.session_trace_disable(sid, serial#); -- 关闭trace

 

分享到:
评论

相关推荐

    10046事件和sql_trace.docx

    【10046事件与SQL_TRACE】是Oracle数据库中用于诊断和优化SQL语句执行性能的重要工具。当面临SQL语句执行效率低下时,我们可以启用SQL_TRACE来追踪其执行流程,获取详细的执行信息,从而找出性能瓶颈。 一、启用SQL...

    SQL执行计划之sql_trace

    ### SQL执行计划之sql_trace详解 #### 一、SQL Trace简介 SQL Trace 是 Oracle 提供的一种强大工具,用于记录 SQL 语句的执行过程。它能够帮助数据库管理员和开发人员详细了解 SQL 语句是如何被 Oracle 数据库处理...

    SQL Trace and TKPROF

    ### SQL Trace 和 TKPROF 相关知识点 #### 一、SQL Trace 概述 **SQL Trace** 是 Oracle 数据库提供的一种性能分析工具,它能够收集执行 SQL 语句时的相关统计信息,如 CPU 时间、等待时间等。通过这些信息,DBA ...

    SQL-trace-profiler:使用 SQL(和外部表)分析 SQL 跟踪文件

    SQL 跟踪分析器 使用 SQL(和外部表)分析 SQL 跟踪文件

    SQL TRACE原理、方法、事件查看总结

    总结,SQL TRACE是Oracle数据库诊断和性能优化的重要工具,通过10046和10053事件,我们可以深入理解SQL的执行过程,从而针对性地优化数据库性能。掌握SQL TRACE的使用,对于提升数据库系统的效率具有重要意义。

    go-sql-tracer:我的go-sql-proxy包装器

    db, err := sql.Open('mysql:trace', dsn) } 描述 go-sql-tracer在软件包init中从加载的驱动程序中注册名称后缀为':trace'的sql驱动程序。 因此,您应该在导入go-sql-tracer之前放置加载sql驱动程序库。 也可以看...

    How to collect 10046 trace_Chinese

    ### 如何收集10046 Trace (SQL_TRACE) 以诊断性能问题 #### 概述 10046 Trace是一种高级的SQL追踪技术,主要用于深入分析Oracle数据库中的SQL语句执行情况,包括但不限于SQL语句的执行计划、绑定变量、等待事件等。...

    2023-06-05 stonedb-在派生表的场景查询为空无法传递默认值-mysql/sql-innodb的trace日志

    mysqld.trace

    BlackHat-dc-09-Cerrudo-SQL-Anti-Forensics.pdf

    **默认跟踪(Default Trace)** - 默认跟踪是一种轻量级的跟踪工具,用于记录特定的系统事件,如执行存储过程、执行查询等。 - 它可以帮助分析数据库的操作行为,尤其是在追踪异常操作方面。 **交易日志...

    如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况

    如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况?Sql性能非常差的时候,oracle提供了SQL_TRACE来跟踪sql的执行情况。注:分析sql的方式比较多,还有根据优化器、sql执行计划来分析。SQL_TRACE能够将sql执行的过程...

    SQLTracker(sql跟踪器).zip

    SQLTracker是一款专为数据库管理人员和开发人员设计的工具,用于监控和分析SQL查询性能。它可以帮助用户深入了解数据库的运行情况,找出慢查询,优化数据库性能,从而提高整体系统效率。以下将详细介绍SQLTracker的...

    Oracle-sql-Performance-Tuning-30Tips.rar_oracle_tom kyte

    27. **SQL调优工具**:使用如SQL Trace、TKPROF等工具,帮助分析和优化SQL性能。 28. **优化连接顺序**:在JOIN操作中,优化连接顺序可能显著影响性能,应优先连接小表。 29. **考虑使用 Materialized View Logs**...

    关于SQL Server中跟踪(Trace).rar

    数据库跟踪相关的一些学习 1.查询数据库对象修改操作的信息 2.根据DefaultTrace查询数据库ErrorsandWarnings事件记录信息 3.根据DefaultTrace查询数据库对象Server操作记录...7.SQL Server中关于跟踪(Trace) 等等

    SQL SERVER Alert and Trace的综合应用

    在本文中提到的方法是通过SQL Server Profiler导出T-SQL脚本来创建Trace,然后基于这个Trace定义Alert。SQL Server Profiler允许用户选择感兴趣的事件、数据列和过滤条件,然后将其导出为可执行的脚本。例如,以下...

    The ABAP SQL Trace (ST05)

    它是 Performance Trace 的一部分,能够提供详细的数据库性能信息。然而,在标准的 ABAP 课程中,关于如何使用 ABAP SQL 跟踪和解释其结果的信息却鲜为人知。这篇博客旨在为您提供 ABAP SQL 跟踪的快速介绍,展示...

    收获,不止SQL优化--抓住SQL的本质

    13.1.5 使用10046trace 跟踪PL/SQL 368 13.2 PL/SQL优化其他相关扩展 369 13.2.1 编译无法成功 369 13.2.2 通用脚本分享 370 13.3 本章习题、总结与延伸 380 第14章 动手,高级写法应用让SQL飞 381 14.1 具体...

    10046事件跟踪详细指南

    本文将详细介绍如何启用和使用SQL_TRACE以及10046事件跟踪。 **SQL_TRACE的使用** SQL_TRACE是Oracle提供的一个功能,它可以在全局或会话级别启用,用于记录SQL语句的详细执行信息。启用SQL_TRACE有以下三种方法:...

    Oracletrace

    其中,SQL_TRACE与10046事件是最常用的追踪方式。除了这些标准方法外,Oracle还提供了ORADEBUG等其他高级追踪技术。本文将详细介绍Oracle中的追踪机制,包括追踪文件的位置、不同版本之间的差异,以及如何使用追踪...

    QT-c++和C#工业MES上位机9套源码 清单: 1)QT5(WY-DJ)智能点胶系列 2)QT5(WF-TRACE3)MES现场数据追溯 3)QT5(PRV)工业自动扫码追溯 4)QT5(LZLN

    2)QT5(WF_TRACE3)MES现场数据追溯 3)QT5(PRV)工业自动扫码追溯 4)QT5(LZLN_HE_PLUS)工业气体标定 5)C#2019(WF8063)工业自动压装机 6)C#2019(WF_PRESS_OFSET)工业自动化 7)C#2019(FKSZ)多工位工业自动化 8)C#...

Global site tag (gtag.js) - Google Analytics