`

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

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

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

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

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

    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允许用户选择感兴趣的事件、数据列和过滤条件,然后将其导出为可执行的脚本。例如,以下...

    用10046事件来进行SQL跟踪

    ### 用10046事件来进行SQL跟踪 #### 一、引言 在数据库管理领域,特别是Oracle数据库中,性能调优是一项重要的任务。为了更有效地定位问题并优化性能,开发人员和数据库管理员(DBA)经常需要使用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 具体...

    The ABAP SQL Trace (ST05)

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

    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