在学习DM的SQL优化过程中,DM有两个功能能够帮助我们更方地分析SQL语句的执行情况,分别是物理执行计划和ET。所以学会看懂执行计划和ET对于达梦SQL优化是很重要的事情。

关于物理执行计划:

物理执行计划是在经过词法语法语义分析,对得到的逻辑计划进行代价估算选出的“最优”执行计划。

对于如下语句

SELECT * FROM TEST2.TAB;

会有以下物理执行计划:

物理计划是自顶向下驱动,数据自底向上传递的,也就是说,最开始执行的是处于最下端的计划。

物理执行计划中,名称为该计划执行的操作符,代价为执行时间,单位为毫秒,结果集为预估行数,行数据处理长度为每行的字节长。

操作符此处介绍部分常用到的操作符:

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

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

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

如何查看物理执行计划:

在需要查看执行计划的语句前加上explain关键词,如以上的语句,查看他的执行计划即为:

EXPLAIN SELECT * FROM TEST2.TAB;

也可在manager图形化操作界面在执行完相关语句后,点击如下按钮查看

关于ET:

ET可以显示执行计划各个节点的执行时间,上面例子的ET如下:

其中OP为对应的操作符,time为执行时间,PERCENT为时间占比,rank为时间排行,SEQ为对应执行计划中的第几行

对于需要进行优化的SQL语句,可先查看对应ET看看是哪个语句的执行时间过长,之后再具体分析原因。

如何查看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);  

在开启ET功能后,执行相关语句后,可在下方的信息栏,看到语句的Execute ID,鼠标直接点击,ET可以显示执行计划各个节点的执行时间,如图:

也可以通过调用存储过程查看:

CALL ET(677);

请上达梦社区了解 https://eco.dameng.com

DM达梦执行计划和ET的查看使用相关推荐

  1. oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性

    1 表行计数器 说明 默认情况下,DM 达梦数据库count() 是秒回结果的,不受表中实际行数的影响,执行select count() 都能立即返回正确的结果.因为达梦数据库的count(*)操作不 ...

  2. 浅谈DM达梦数据库体系结构概念

    浅谈DM达梦数据库体系结构概念 DM逻辑结构 DM和Oracle一样也分数据库和实例,两者的概念也基本一致. 但是不同点在于:达梦是单进程.多线程,而oracle是多进程的. DM这种对称服务器构架在 ...

  3. DM达梦数据库删除表时提示锁超时的解决方法

    DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...

  4. ORACLE迁移到DM/达梦 Mysql迁移到DM/达梦 SQLSERVER迁移到DM/达梦 超级有用参考文档!!!

    ORACLE迁移到DM/达梦 Mysql迁移到DM/达梦 SQLSERVER迁移到DM/达梦 超级有用参考文档!!! 在达梦的论坛上,有专门的手记写了这三种数据库迁移到达梦!!超级好用!!!!!!!! ...

  5. DM达梦数据库的使用以及数据迁移工具的使用

    1.找不到DM数据库的相关软件 我们打开虚拟机的终端,在根目录下输入命令: ./manager ------->是打开达梦数据库的管理工具 ./dts --------------->是打 ...

  6. 浅谈DM达梦数据库安全管理之用户身份验证与权限管理

            数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护.DM达梦数据库提供了包括用户标识与鉴别.自主与强制访问控制.通信与存储 加密.审计等丰富的安全功能.达梦数据库 的 ...

  7. 达梦数据库SQL调优,查看执行计划、ET

    一.调优目标 SQL 调优的整体目标是使用最优的执行计划,使IO以及CPU代价最小.调优主要关注下列方面: ·表扫描 如果计划中对某大表使用了全索引扫描,那么需要关注该表是否存在某个查询条件使得过滤后 ...

  8. DM达梦数据库体系结构

    1 DM逻辑结构概述 1.1 数据库和实例 在DM7之前版本的DM数据库中,"数据库"和"实例"这两个术语经常可以互相替换,意义也很相近.在DM7以及之后版本的 ...

  9. DM达梦数据库 - 设置忽略关键字方法,login关键字处理实例演示

    实例 sql 语句如下: INSERT INTO INTELLIV_USER (ID, LOGIN, PASSWORD_HASH, FIRST_NAME, LAST_NAME, EMAIL, IMAG ...

最新文章

  1. Java实现文件的预览
  2. python编程从入门到实践课后题答案-python编程:从入门到实践习题5-8~5-11
  3. java eclipse 内存_java – Eclipse 3.5.1使用大量内存
  4. 返回多维数组中某一维的最大值
  5. 张老师讲Python~
  6. 【转】DICOM入门(一)——语法
  7. WeakReference带来了什么
  8. Luogu P4205 [NOI2005]智慧珠游戏
  9. JavaScript-浅谈DOM事件流
  10. python可以调用windows资源吗_在Windows中使用Python设置文件夹权限
  11. 中文词向量论文综述(三)
  12. javascript获取TreeView控件选中节点的Text和Value
  13. 【图像隐写】基于matlab GUI DWT+SVD数字水印【含Matlab源码 606期】
  14. (转载)Delphi开发经验谈
  15. 谷歌官方Android模拟器强化x86处理器性能 Android 11 可以运行arm 应用了
  16. i7 8700k 安装linux,i7 8700k能装win7吗?i7 8700k搭配华硕B365主板装win7
  17. asp.net md5加密
  18. Python使用在线接口SDK模块(baidu-aip)实现人脸识别
  19. JavaScript基础复习之数据类型,解读数据类型不为人知的一面
  20. ECAM6--变量与函数

热门文章

  1. 进入xshell显示路径
  2. 【36C++STL-常用容器----5、stack容器详解】
  3. 车联网发展的昨天和明天
  4. 让应用程序禁止Windows屏幕保护
  5. 一套开源快速开发平台--若依(ruoyi)
  6. h5实现类似淘宝评价选择标签
  7. 真爱趁现在电视剧全集在线观看 html,真爱趁现在
  8. 活动回顾 谷露招聘沙龙VOL.6 解锁校招人才获取新玩法
  9. HTTP1 HTTP1.1 HTTP2主要区别及 HTTP3
  10. 如何构建全球实时音视频云及其海外网络传输优化