达梦数据库(DM7)的部分TRACE事件说明

DM7 中存在一些动态TRACE,在ENABLE_MONITOR=0的情况下依然可以用来跟踪一些问题,以下是部分TRACE事件说明

-1事件
–普通,出现运行时错误将SQL语句输出到TRACE文件中
alter session 0 set events ‘-1 trace name errorstack,level 1’;

–慎用,LEVEL 2情况下,服务器运行中出现错误会将错误语句以及错误堆栈都输出到TRACE文件中,但是抓取堆栈可能导致数据库服务器异常
alter session 0 set events ‘-1 trace name errorstack,level 2’;

10001事件
alter session 0 set events ‘10001 trace name context forever,level 1’
ALTER SESSION 0 SET EVENTS ‘10002 TRACE NAME CONTEXT FOREVER,LEVEL 1’’
操作类型编号|执行号|VM地址|数据字符长度|处理数据行数|左儿子数据长度|左儿子行数|右儿子数据长度|右儿子行数|操作符状态|操作符下一状态|该次进入操作符耗时
支持的操作符如下:
MERGER INNER
BLKUP
GSEK
MERGE SEMI
NEST LOOP INDEX JOIN
SLCT
CSCN
HASH LEFT SEMI
CSEK
HASH INNER JOIN
INDEX JOIN
INDEX LEFT OUTER JOIN
INDEX SEMI JOIN
HASH LEFT SEMI
HASH RIGHT OUT
HASH RIGHT SEMI
例子:
explain select top 2000 * from testa;
1 #NSET2: [10, 2000, 12]
2 #PRJT2: [10, 2000, 12]; exp_num(2), is_atom(FALSE)
3 #TOPN2: [10, 2000, 12]; top_num(2000)
4 #CSCN2: [10, 99999, 12]; INDEX33555514(TESTA)
select top 2000 * from testa;

TRACE 文件内容
200|23|19702032|12|1000|0|0|0|0|CSCN2_STATE_START|CSCN2_STATE_FETCH|34|
200|23|19702032|12|1000|0|0|0|0|CSCN2_STATE_FETCH|CSCN2_STATE_FETCH|41|
BDTA SIZE 为1000 所以一次只能FETCH 1000行,TOP和PRJT 不支持10002事件,所以内容中只含有CSCN 相关,
俩行事件相加为该CSCN操作符总耗时

10003 事件

trace含有特定操作符的语句输出到TRACE文件
alter session 0 set events ‘10003 trace name context forever,level 1’
level 支持1到15 含义如下:
LEVEL 1 CSCN
LEVEL 2 HASH JOIN
LEVEL 4 HAGR
LEVR 8 NEST LOOP
支持 这几种操作符号组合,比如TRACE CSCN 和 HASH JOIN 的语句,level 可以设置为3 (1+2)
alter session 0 set events ‘10003 trace name context forever,level 3’

10053事件

trace SQL语句的计划生成过程输出到TRACE 文件,TRACE出的是SQL 的实际执行计划
alter session 0 set events ‘10053 trace name context forever,level 1’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值