执行一个SQL时,要经过中间很多步骤,特别是一个性能有问题的查询,这时我们很想把最耗时,最耗资源的那关键一步找出来,这个就需要用到达梦的的ET工具。
我们可以通过查看执行计划,了解到数据库执行中经历的步骤,但在执行计划中是无法直观看出最有问题的那一步,甚至是根本看不出来
例如:
执行计划有三个步骤,但无法知晓哪一步消耗大量系统资源
一 开启达梦数据库ET
达梦数据库ET功能默认是关闭的,需设置 INI 参数ENABLE_MONITOR=1、 MONITOR_TIME=1 和 MONITOR_SQL_EXEC=1。
1 、查询相关参数及其值
SQL> select para_name,para_value,para_type from v$dm_ini where para_name in ('EN
ABLE_MONITOR','MONITOR_TIME','MONITOR_SQL_EXEC');
行号 PARA_NAME PARA_VALUE PARA_TYPE
---------- ---------------- ---------- ---------
1 ENABLE_MONITOR 0 SYS
2 MONITOR_TIME 0 SYS
3 MONITOR_SQL_EXEC 0 SESSION
2 、配置相关参数开启ET功能
SQL> SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);
SQL> SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);
SQL> SP_SET_PARA_VALUE(1,'MONITOR_TIME',1);
3 查询参数是否修改成功
SQL> select para_name,para_value,para_type from v$dm_ini where para_name in ('EN
ABLE_MONITOR','MONITOR_TIME','MONITOR_SQL_EXEC');
行号 PARA_NAME PARA_VALUE PARA_TYPE
---------- ---------------- ---------- ---------
1 ENABLE_MONITOR 1 SYS
2 MONITOR_TIME 1 SYS
3 MONITOR_SQL_EXEC 1 SESSION
二 使用ET分析执行SQL
1 查看执行语句消息窗口
2 点击执行号超链接,弹出窗口
3 调用存储过程
call ET(408)
4 关于ET结果中,每个列的具体含义如下:
OP :操作符名称
TIME(US) :执行耗时,以微秒为单位
PERCENT RANK :在整个计划中用时占比
SEQ :计划中的序号
N_ENTER :操作符进入的次数
ET功能的开启是需要消耗一定的数据库性能的,如果系统整体性能比较繁忙,建议在使用ET完成SQL优化后,关闭ET功能
更多资讯请上达梦技术社区了解:https://eco.dameng.com