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建立的数据源连接显示status为INACTIVE。 记录该笔资料的SID和SERIAL#值 |
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) 在toad的SQL窗口中,执行如下语句:
开启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执行【同场景1中step10的SQL】
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 |
相关推荐
oracle的10046事件跟踪.pdf
Oracle Ebs官方工具Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具,可观测语句绑定变量的值。
Oracle中的trace跟踪不仅可以跟踪当前的运行情况,还可以对SQl语句的执行进行跟踪
oracle系统状态trace文件分析器 当系统hang住时,或者进程间有阻塞时,你可以产生下面两种跟踪文件,一种是进程状态跟踪文件,一种是系统状态跟踪文件: process state dumps ==> 一个进程的所有对象状态,...
包含了oracle诊断 oracle 诊断事件列表trace文件 ORA报错信息
Oracle 10046 事件的详细分析说明。dba很值得一看
数据库范例表。用system用户导入。导入后可以登录使用。默认账户scott,密码tiger.
10046事件和sql_trace.docx
适用安卓手机掌阅查看,第一章 oracle数据库基础、第二章 sql plus命令行工具的使用、第三章表及表空间的基本操作、第四章PL/SQL流程控制、第五章基础查询,第七章高级查询,第八章索引与视图、第九章存储过程与事务...
多个oracle formbuiltder 开发实例,开发者有用的好东西
BLOG_Oracle_lhr_【方法整理】Oracle 获取trace跟踪文件名的几种常用方式.pdfBLOG_Oracle_lhr_【方法整理】Oracle 获取trace跟踪文件名的几种常用方式.pdfBLOG_Oracle_lhr_【方法整理】Oracle 获取trace跟踪文件名的...
oracle数据库开发范例
oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnslsnr/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下都有以下分别简称listener目录和db1目录。这两目录下都有如下目录:alert cdump hm ...
1、创建存储过程 2、变量赋值 3、判断语句 4、For 循环 5、While 循环 6、数组 7.游标的使用 ....
随着学校的普及和人们文化水平的提高,高效的教学管理系统越来越广泛应用于各类信息化学校。学生学籍管理系统要求实用性强、使用方便、效率高和安全可靠等特点。 经分析我们认为学生学籍管理系统的具体要求为: ...
SQL语法范例大全SQL和Oracle通解
ORACLE开发范例与练习
本文实例讲述了Python操作Oracle数据库的简单方法和封装类。分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多,所以就想先学习下Python操作Oracle的...
mapx访问oracle范例