博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle执行语句跟踪(1)——使用sql trace实现语句追踪
阅读量:4070 次
发布时间:2019-05-25

本文共 2258 字,大约阅读时间需要 7 分钟。

1.安装dbms_support包

 

SQL> @?/rdbms/admin/dbmssupp.sqlPackage created.Package body created.SQL> grant execute on dbms_support to dairy;

2.找到需要跟踪的会话

SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';Session altered.SQL> select sid,serial#,logon_time from v$session where audsid=userenv('sessionid');       SID    SERIAL# LOGON_TIME---------- ---------- -------------------      2845     1649 2018-10-18 09:50:40

3.使用start_trace_in_session进行跟踪

SQL> exec dbms_support.start_trace_in_session(2845,1649,TRUE,TRUE);PL/SQL procedure successfully completed.

4.开始跟踪后,在客户端进行对应的操作。

5.使用stop_trace_in_session结束跟踪
.

SQL> exec dbms_support.stop_trace_in_session(2845,1649);PL/SQL procedure successfully completed

6.使用以下的语句获得trace文件的位置。

SELECT    d.VALUE       || '\'       || LOWER (RTRIM (i.INSTANCE, CHR (0)))       || '_ora_'       || p.spid       || '.trc'           trace_file_name  FROM (SELECT p.spid          FROM v$mystat m, v$session s, v$process p         WHERE m.statistic# = 1 AND s.SID = &SID AND p.addr = s.paddr) p,       (SELECT t.INSTANCE          FROM v$thread t, v$parameter v         WHERE     v.NAME = 'thread'               AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,       (SELECT VALUE          FROM v$parameter         WHERE NAME = 'user_dump_dest') d        SQL> SELECT    d.VALUE       || '\'       || LOWER (RTRIM (i.INSTANCE, CHR (0)))       || '_ora_'       || p.spid       || '.trc'           trace_file_name  FROM (SELECT p.spid          FROM v$mystat m, v$session s, v$process p         WHERE m.statisti  2    3    4    5    6    7    8    9   10  c# = 1 AND s.SID = '2845' AND p.addr = s.paddr) p,       (SELECT t.INSTANCE          FROM v$thread t, v$parameter v         WHERE     v.NAME = 'thread'               AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,       (SELECT VALUE         11   12   13   14   15   16    FROM v$parameter         WHERE NAME = 'user_dump_dest') d 17  ;TRACE_FILE_NAME--------------------------------------------------------------------------------/home/u01/app/oracle/diag/rdbms/foidndb/foidndb/trace\foidndb_ora_19143.trc

7.使用TKPROF将trace文件转换成为执行计划解析的文本。

 

[oracle@foidndb db_1]$ tkprof /home/u01/app/oracle/diag/rdbms/foidndb/foidndb/trace/foidndb_ora_19143.trc /u01/test.txt

 

转载地址:http://rchji.baihongyu.com/

你可能感兴趣的文章
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>