首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Oracle 日常管理]使用oradebug捕获SQL语句

[Oracle 日常管理]使用oradebug捕获SQL语句

作者头像
bsbforever
发布2020-08-19 15:30:32
8010
发布2020-08-19 15:30:32
举报

1. oradebug介绍

oradebug是Oracle提供的一个内部工具,可用于:

  • debug Oracle错误
  • trace Oracle错误
  • 跟踪SQL 语句并使用tkprof工具格式化分析
  • 分析Oracle Hang和Crash
  • SQL性能优化

2. 进入oradebug

使用该命令需要dba权限,一般使用sys用户

sqlplus / as sysdba
SQL> oradebug help
1.png
1.png

可以看出他又很多选项,这节将SQL Trace相关的内容

3. Oracle 10046 事件

Oradebug 使用events来捕获Oracle的各种事件

对于 SQL trace来说,使用的是10046事件

对于10046事件来说,它提供了不同等级来满足不同的需求

Level 1 - contains the basic level of trace information. For example, this trace level will display the bind variables in PL/SQL and SQL statements.

Level 8 - provides the trace details from Level 1 plus the wait events for elapsed times that are more than current CPU timings.

Level 12- adds in all the previous trace level information in addition to all wait event information

4. 使用oradebug

4.1 使用oradebug 追踪当前会话

SQL> oradebug setmypid
Statement processed.
SQL>

4.2 设置tracefile名称

这里为tracefile取一个便于记忆的名称

 SQL> alter session set tracefile_identifier='mytrace';
 Session altered.

4.3 查看tracefile存储位置

默认位置在USER_DUMP_DESTINATION 中

SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/mesassy/mesassy/trace/mesassy_ora_23993_mytrace.trc
SQL> 

4.4 不限制tracefile文件大小

SQL> oradebug unlimit
Statement processed.

4.5 指定10046事件

SQL> oradebug event 10046 trace name context forever, level 12
Statement processed.
SQL> 

4.6 执行一些语句

SQL> select * from fwassy.fwcatns_stg_aolot where controllotid='321321';

no rows selected

4.7 关闭10046事件

SQL> oradebug event 10046 trace name context off
Statement processed.

4.8 tkprof 命令

这时我们可以直接打开文件查看原始数据也可以使用tkprof 命令格式化

explain表示格式化执行计划,如错误则会在文件中保持

sys=no代表不格式化sys用户下的语句

cd /u01/app/oracle/diag/rdbms/mesassy/mesassy/trace/
tkprof mesassy_ora_23993_mytrace.trc trace_sql.txt explain=system/oracle  sys=no waits=yes

5. 分析trace 文件

5.1 原始文件

第一部分为Oracle 实例相关的信息

2.png
2.png

第二部分为执行的命令

3.png
3.png

第三部分为等待信息和执行计划

如果语句出错 会输出PARSE ERROR

4.png
4.png

5.2 格式化后文件

这个基本上很容易理解,内容和上面相同,只是更易于阅读

5.png
5.png
6.png
6.png

更多信息请参考下面的参考资料

6.参考资料

http://www.dba-oracle.com/t_oradebug_tips.htm

SQL跟踪方法介绍 & TKPROF 语句分析工具

Tkprof工具详解

Oracle oradebug 命令 使用说明

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. oradebug介绍
  • 2. 进入oradebug
  • 3. Oracle 10046 事件
  • 4. 使用oradebug
    • 4.1 使用oradebug 追踪当前会话
      • 4.2 设置tracefile名称
        • 4.3 查看tracefile存储位置
          • 4.4 不限制tracefile文件大小
            • 4.5 指定10046事件
              • 4.6 执行一些语句
                • 4.7 关闭10046事件
                  • 4.8 tkprof 命令
                  • 5. 分析trace 文件
                    • 5.1 原始文件
                      • 5.2 格式化后文件
                      • 6.参考资料
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档