如何看某条sql语句每个操作符的执行时间?

达梦技术社区:http://eco.dameng.com/
1、创建测试表
DROP TABLE if EXISTS TEST;
CREATE TABLE TEST (NAME VARCHAR2(200),ENTRY_DATE DATE,COMPANY VARCHAR2(200));
INSERT INTO TEST VALUES(‘王强’,date’2008-1-1’,‘电信’);
INSERT INTO TEST VALUES(‘王强’,date’2009-1-1’,‘移动’);
INSERT INTO TEST VALUES(‘王强’,date’2010-1-1’,‘联通’);
INSERT INTO TEST VALUES(‘李四’,date’2008-1-1’,‘电网’);
INSERT INTO TEST VALUES(‘李四’,date’2009-1-1’,‘财政局’);
INSERT INTO TEST VALUES(‘张三’,date’2012-12-1’,‘腾讯’);
INSERT INTO TEST VALUES(‘张三’,date’2013-12-1’,‘阿里’);
INSERT INTO TEST VALUES(‘张三’,date’2014-12-1’,‘美团’);
INSERT INTO TEST VALUES(‘张三’,date’2015-12-1’,‘饿了么’);
COMMIT;
–SELECT * FROM TEST; --查看数据
结果如下图所示:
在这里插入图片描述

2、动态修改参数
在管理工具中执行如下语句:
SF_SET_SESSION_PARA_VALUE(‘MONITOR_SQL_EXEC’,1); --动态打开会话级参数MONITOR_SQL_EXEC,该设置只对本会话有效,其余会话无影响
执行结果如下图所示:
在这里插入图片描述
3、执行sql语句并获取操作符执行时间
SELECT A.NAME,LISTAGG(A.COMPANY,‘->’) WITHIN GROUP (ORDER BY A.ENTRY_DATE) FROM TEST A GROUP BY A.NAME;
执行结果如下图所示:
在这里插入图片描述
依次点击“消息”,执行号“590”,(或者执行 et(590) )弹出如下的操作符执行时间对话框:
执行结果如下图所示:
在这里插入图片描述
注:
如上图所示,该sql语句共涉及6个操作符,按照执行的先后顺序分别是SAGR2、SORT3、NSET2、CSCN2、DLCK、PRJT2。
其中,耗时最长的操作符是SAGR2,耗时1072微秒,占总执行时间的63.47%;耗时排第二位的操作符是SORT3,耗时536微秒,占总执行时间的31.73%。
根据上述的分析,我们就需要针对这2个操作符进行针对性的优化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值