10046事件并不解释优化器的工作,但它记录了在SQL解析阶段所遇到的等待事件和所消耗的CPU等资源,以及执行阶段的各项指标。需要注意的是,如果一个SQL语句已经被解析过,那么就不会生成10053的trace文件,但10046的trace文件可以重复生成。 简而言之,10046事件记录SQL如何运行,而10053记录优化器为什么为这个SQL选择某个执行计...
sql_trace(或者10046跟踪事件) sql_trace跟踪的内容由三个部分组成:执行语句时造成的等待事件(waits)、执行语句时产生的 性能统计数据,以及语句执行计划和绑定变量的信息。 再回话或者系统启动sql跟踪后,会话结束或者关闭sql跟踪前,会话(或系统中)所有运行的 语句性能统计数据都会记录到udump目录(user_dump_dest参数指定...
10046、10053、实操记录 10046是一个Oracle的内部事件(event),通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息,即帮助我们解析一条/多条SQL、PL/SQL语句的运行状态,这些状态包括:Parse/Fetch/Execute三个阶段中遇到的等待事件、消耗的物理和逻辑读、CPU时间、执行计划等。它不仅...
10046 event 告诉我们oracle做了哪些事情,做的怎么样。 10053 event 告诉我们oracle优化器怎么想的,再给出成本最低的最终的优化方案,考虑了哪些执行计划拿了哪些统计信息
可是10046的跟踪事件显示的信息比较有限不能够准确定位错误的原因,我请朋友通过10053事件来生成一个执行计划的跟踪,10053使用极为简便,通过如下方式就可以捕获SQL的解析过程: alter session set events '10053 trace name context forever,level 1'; explain plan for you_select_query; ...
10046 事件按照收集信息内容,可以分成4个级别: Level 1: 等同于SQL_TRACE 的功能 Level 4: 在Level 1的基础上增加收集绑定变量的信息 Level 8: 在Level 1 的基础上增加等待事件的信息 Level 12:等同于Level 4+Level 8, 即同时收集绑定变量信息和等待事件信息。
ORACLE之10053事件-实战 资深数据库工程师 相关推荐 评论-- 13 -- 16:26 App ORACLE之10046事件和SQL TRACE-实战 51 -- 32:58 App MYSQL优化1-实战天花板 63 -- 37:56 App MYSQL优化实战2 11 -- 19:45 App ORACLE之V$SESSION视图-实战1 48 -- 12:36 App ORACLE-DATAGUARD搭建下 21 -- ...
为了证明,可以查看这两条SQL对应的10053事件,如下是name=’A’的trace,可以看出全表扫描的成本值是49.63,索引扫描的成本值是351.26,全表扫描的成本更低一些。 如下是name=’B’的trace,可以看出全表扫描的成本值是49.40,索引扫描的成本值是2.00,索引扫描的成本值更低一些。
10046产生的原始trace文件习惯称为裸trace文件(raw trace),不直观,Oracle提供了tkprof命令,翻译裸文件trace。 oradebug setmypid表示准备对当前session使用oradebug命令。 (5)、10053事件 (6)、AWR报告或Statspack报告。 (7)、一些现成的脚本(display_cursor_9i.sql等)。