DM达梦数据库执行计划查看和ET的使用

        执行计划是一条查询语句在数据库中的执行过程或访问路径的描述。查看执行计划有助于理解SQL语句在执行的详细过程和细节。尤其是对于慢SQL语句来说,通过查看执行计划了解sql执行节点中的“痛点”,进行有针对性的排查,是后续改进SQL 性能的重要基础。 

达梦技术社区 https://eco.dameng.com

        达梦数据库查看执行计划主要两种方式,一个是通过EXPLAIN命令在disql环境下使用SQL语句查看,第二个是使用DM数据库管理工具查看。

  • 通过EXPLAIN命令使用SQL语句查看
  1. (1)使用EXPLAIN 命令查看执行计划;

示例:explain select * from sysobjects where name like '%TABLESPACE%';

(2)使用EXPLAIN FOR 命令查看执行计划;

 

可以看出EXPLAIN FOR 命令输出的执行计划更加详细;

使用EXPLAIN命令查看执行计划如果是特别大的SQL语句,在linux系统的disql环境下对于查看执行计划的阅读体验不太友好,可以复制出来放在windows下的文本编辑器如UE和notepad++进行查看。

  • 使用DM数据库管理工具查看

在linux系统下执行命令;

cd  /opt/dmdbms/tool

./manager

打开DM管理工具。

然后在查询窗口中输入SQL语句,点击下图中的查看执行计划按钮,查询窗口下方的窗口会显示该SQL语句的执行计划。如下图所示:

执行计划中常见操作符解释

常见的操作符有:

NSET:结果集

PRJT:投影,,用于选择表达式项的计算。

CSCN :基础全表扫描(a),从头到尾,全部扫描
SSCN :二级索引扫描(b),从头到尾,全部扫描
SSEK :二级索引范围扫描(b) ,通过键值精准定位到范围或者单值
CSEK :聚簇索引范围扫描(c) ,通过键值精准定位到范围或者单值
BLKUP :根据二级索引的ROWID 回原表中取出全部数据(b + a)
SLCT:过滤条件,是对结果集进行过滤。
SORT: SORT是做排序操作时使用到的操作符。
HAGR:HASH AGR操作,是最基础的分组方式,对于没有优化条件的分组语句,一般都会按这种方式进行分组。
SAGR: SORTED AGR操作,同一分组的数据按照顺序取出。

NEST LOOP INNER JOIN(嵌套循环连接) :最基础的连接方式,将一张表的一个值与另一张表的所有值拼接,形成一个大结果集,再从大结果集中过滤出满足条件的行。

HASH JOIN(哈希连接):没有索引的情况下,大多数连接的处理方式,将一张表的连接列做成HASH表,另一张表的数据向这个HASH表匹配,满足条件的返回。

INDEX JOIN(索引连接): 将一张表的数据拿出,去另外一张表上进行范围扫描找出需要的数据行,需要右表的连接列上存在索引。

MERGE JOIN(归并连接):两张表都扫描索引,按照索引顺序进行归并。

DM数据库中ET功能的使用

(1)开启DM数据库的ET功能

达梦数据库的ET功能默认未开启。启动ET需要设置三个参数:

ENABLE_MONITOR、MONITOR_TIME、MONITOR_SQL_EXEC;

开启ET功能命令:

SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);  

SP_SET_PARA_VALUE(1,'MONITOR_TIME',1);  

 SF_SET_SESSION_PARA_VALUE('MONITOR_SQL_EXEC',1);  

其中,ENABLE_MONITOR和MONITOR_TIME默认已开启。上述命令在未开启的情况下执行。

MONITOR_SQL_EXEC为会话级动态参数,可以设置只针对当前会话开启。

(2)查看ET功能的输出

在查询窗口执行一条SQL语句,可以在下方的信息栏,看到语句的Execute ID,鼠标直接点击,ET可以显示执行计划各个节点的执行时间;如图:

执行时间结果的显示:

还可以调用存储过程,在SQL查询窗口执行:

CALL ET(913);

返回结果以表的行列形式显示,如图:

达梦技术社区 https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值