`
楚若之夜
  • 浏览: 125032 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

racle Trace 10046简单范例

 
阅读更多

1. 环境: oracle 10.2.0.4

2. 测试场景: 通过weblogic提供的数据源连接数据库

   1)weblogic中建立数据源时,初始设定一个连接,以方便确认执行过程中,所产生的trace文件。

   2)确认trace文件生成的路径:

SQL> show parameter user_dump_dest

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

user_dump_dest                       string      /oracle/admin/jf/udump

SQL> show parameter background_dump_dest

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

background_dump_dest                 string      /oracle/admin/jf/bdump

3)确认用户id

Toad中执行:

SELECT SID, SERIAL#, USER#, USERNAME, STATUS

  FROM V$SESSION T

 WHERE  MACHINE LIKE '本机机器名%';

目前:本机连接数据库有toad连接和Weblogic建立的数据源连接,故返回两条记录,其中Weblogic建立的数据源连接显示statusINACTIVE

记录该笔资料的SIDSERIAL#

4)使用sys用户开启Trace

execdbms_monitor.session_trace_enable(93,18096,true,true);;sid:93;serial: 18096

PL/SQL procedure successfully completed.

5)进入trace文件的存放路径,此时并未发现今日生成的.trc文件

ls –lrt *

         6)当通过应用程序发生了数据库操作后,查看/oracle/admin/jf/udump目录下生成了jf_ora_8182.trc文件【通过文件生成的时间判断】

         7)通过tkprof命令转化trace文件为txt格式

[200.14]/oracle/admin/jf/udump>tkprof jf_ora_8182.trc/home/bea/app/lihailong/8023_new_03.txt explain=userName/pwdaggregate=no sys=no waits=no;

         8)关闭trace跟踪

SQL> exec dbms_monitor.session_trace_disable(93,18096);

         9)应用程序再发生了数据库操作后,jf_ora_8182.trc文件将不再发生变化。

    10)生成8023_new_03.txt的部分内容:

SELECT BYDATE,OPERATE_ID,SUM(OPERATE_POINT) OPERATE_POINT

FROM

 (SELECT  SUBSTR(A.CREATE_TIME,0,6) BYDATE,A.OPERATE_ID OPERATE_ID,

  TO_NUMBER(A.OPERATE_POINT) OPERATE_POINT FROM BE_POINT_DETAIL A ,be_purse B

  WHERE A.PURSE_ID=B.PURSE_ID AND   ( a.customer_id = :1 or a.customer_id =

  :2 )AND A.CREATE_TIME >= :3 AND B.PURSE_TYPE_ID != '3' AND

  B.PURSE_PROCESS_TYPE = '1' ) GROUP BY BYDATE,OPERATE_ID ORDER BY BYDATE

  DESC

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        4      0.01       0.00          0        546          0          30

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        6      0.01       0.01          0        546          0          30

 

Misses in library cache during parse: 1

Misses in library cache during execute: 1

Optimizer mode: ALL_ROWS

Parsing user id: 31  (JF_ISU)

 

Rows     Execution Plan

-------  ---------------------------------------------------

      0  SELECT STATEMENT   MODE: ALL_ROWS

      0   SORT (GROUP BY)

      0    NESTED LOOPS

      0     INLIST ITERATOR

      0      TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF

                 'BE_POINT_DETAIL' (TABLE)

      0       INDEX   MODE: ANALYZED (RANGE SCAN) OF

                  'IDX_BE_POINT_DETAIL' (INDEX)

      0     TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF 'BE_PURSE'

                (TABLE)

      0      INDEX   MODE: ANALYZED (UNIQUE SCAN) OF 'PK_BE_PURSE'

                 (INDEX (UNIQUE))

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       5        0.00          0.00

  SQL*Net message from client                     5        0.01          0.04

3.测试场景: 开发过程中,通过Toad工具连接数据库后,测试某SQL语句的执行情况

   1) toadSQL窗口中,执行如下语句:

    开启Trace跟踪: ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';

    关闭Trace 跟踪:ALTER SESSION SET EVENTS '10046 trace name context off';

   2) 开启Trace后,在/oracle/admin/jf/udump目录下存在jf_ora_13297.trc文件

   3) 通过toad执行【同场景1step10SQL

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

  4) 多次执行SQL后,通过tkprof产生如下内容:

 

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.61      72.67       6742      12092          0           8

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.61      72.67       6742      12092          0           8

 

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 31 

 

Rows     Row Source Operation

-------  ---------------------------------------------------

      8  SORT GROUP BY (cr=12092 pr=6742 pw=0 time=72671905 us)

   7989   HASH JOIN  (cr=12092 pr=6742 pw=0 time=14807759 us)

     85    TABLE ACCESS FULL BE_PURSE (cr=7 pr=0 pw=0 time=180 us)

   7989    INLIST ITERATOR  (cr=12085 pr=6742 pw=0 time=14790792 us)

   7989     TABLE ACCESS BY INDEX ROWID BE_POINT_DETAIL (cr=12085 pr=6742 pw=0 time=14789762 us)

  42231      INDEX RANGE SCAN IDX_BE_POINT_DETAIL (cr=269 pr=152 pw=0 time=49272 us)(object id 26977)

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       2        0.00          0.00

  SQL*Net message from client                     2       17.44         17.44

  db file sequential read                      6742        0.12         72.20

        

 

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.15       0.15          0      12092          0           8

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.15       0.15          0      12092          0           8

 

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 31 

 

Rows     Row Source Operation

-------  ---------------------------------------------------

      8  SORT GROUP BY (cr=12092 pr=0 pw=0 time=151202 us)

   7989   HASH JOIN  (cr=12092 pr=0 pw=0 time=86769 us)

     85    TABLE ACCESS FULL BE_PURSE (cr=7 pr=0 pw=0 time=187 us)

   7989    INLIST ITERATOR  (cr=12085 pr=0 pw=0 time=69778 us)

   7989     TABLE ACCESS BY INDEX ROWID BE_POINT_DETAIL (cr=12085 pr=0 pw=0 time=69809 us)

  42231      INDEX RANGE SCAN IDX_BE_POINT_DETAIL (cr=269 pr=0 pw=0 time=104 us)(object id 26977)

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       2        0.00          0.00

  SQL*Net message from client                     2        2.31          2.31

 

分享到:
评论

相关推荐

    Oracletrace

    启用SQL_TRACE的方式很简单,只需在会话中设置SQL_TRACE参数为TRUE即可: ```sql ALTER SESSION SET SQL_TRACE = TRUE; ``` ##### 4.2 10046事件 10046事件是一种更强大的追踪方法,它不仅可以记录SQL语句的执行...

    oracle的10046事件跟踪.pdf

    Oracle的10046事件跟踪是数据库性能分析的关键工具,尤其在解决应用程序性能瓶颈时。这个功能允许数据库管理员深入观察SQL语句的执行过程,获取详细的执行信息,包括解析次数、执行次数、CPU使用时间等,从而进行...

    Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具

    Oracle数据库在进行性能调优时,经常会涉及到对跟踪文件(Trace Files)的分析。这些跟踪文件包含了数据库执行的详细信息,如SQL语句、执行计划、等待事件等,但原始的跟踪文件数据往往混乱且不易读。这时,我们就...

    oracle系统状态trace文件分析器

    oracle系统状态trace文件分析器 当系统hang住时,或者进程间有阻塞时,你可以产生下面两种跟踪文件,一种是进程状态跟踪文件,一种是系统状态跟踪文件:  process state dumps ==> 一个进程的所有对象状态,...

    oracle10046事件详解

    ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8'; ``` 其中,“LEVEL 8”表示收集的信息级别,不同的级别会收集不同详细程度的信息。 3. **执行待追踪的 SQL 语句**:在设置完事件后,...

    oracle 诊断事件列表trace文件 ORA报错

    包含了oracle诊断 oracle 诊断事件列表trace文件 ORA报错信息

    10046事件和sql_trace.docx

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

    How to collect 10046 trace_Chinese

    10046 Trace是一种高级的SQL追踪技术,主要用于深入分析Oracle数据库中的SQL语句执行情况,包括但不限于SQL语句的执行计划、绑定变量、等待事件等。对于性能调优而言,10046 Trace是一项非常重要的工具。本文档将...

    oracle 数据库 scott.sql 范例表

    Oracle数据库是世界上最...总结来说,"oracle 数据库 scott.sql 范例表"提供了一个学习和测试Oracle SQL的实用环境。通过导入"scott.sql"并使用SCOTT用户,初学者能够熟悉数据库管理和SQL语言,进一步提升数据库技能。

    oracle 11g的警告日志和监听日志的删除方法

    oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnslsnr/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下都有以下分别简称listener目录和db1目录。这两目录下都有如下目录:alert cdump hm ...

    oracle form11g范例

    Oracle Form 11g 是 Oracle 公司为企业级应用开发提供的一个组件,它主要用于构建基于数据库的图形用户界面(GUI)应用,特别是那些与Oracle数据库紧密集成的业务系统。Oracle Forms Builder 是其开发工具,提供了...

    Oracle程序开发范例宝典

    适用安卓手机掌阅查看,第一章 oracle数据库基础、第二章 sql plus命令行工具的使用、第三章表及表空间的基本操作、第四章PL/SQL流程控制、第五章基础查询,第七章高级查询,第八章索引与视图、第九章存储过程与事务...

    oracle数据库语句范例

    oracle数据库开发范例

    oracle10的简易客户端

    Oracle 10g简易客户端是Oracle数据库公司推出的一款轻量级数据库访问工具,它为开发者和DBA提供了连接和管理Oracle数据库的便捷途径。这款客户端主要用于执行SQL查询、数据操作、数据库管理以及进行简单的数据库开发...

    oracle12c 32位简易客户端

    Oracle 12c 32位简易客户端是一个轻量级的数据库连接工具,适用于那些只需要基本数据库访问功能的用户。这个客户端包含了SQL*Plus、ODBC驱动程序以及其他基础组件,可以满足开发人员、系统管理员以及对Oracle数据库...

    oracle简单客户端配置64位

    Oracle简单客户端配置64位教程 Oracle数据库是一个广泛使用的数据库管理系统,尤其在企业级应用中占据重要地位。在某些情况下,我们可能并不需要完整的Oracle数据库服务器环境,而是只需要一个能够连接到远程Oracle...

    SQL语法范例大全SQL和Oracle通解

    SQL语法范例大全SQL和Oracle通解

    Python操作Oracle数据库的简单方法和封装类实例

    本文实例讲述了Python操作Oracle数据库的简单方法和封装类。分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多,所以就想先学习下Python操作Oracle的...

Global site tag (gtag.js) - Google Analytics