关于达梦操作符估算代价的一点点知识

本文介绍了达梦数据库中执行计划的概念及其查看方法,并详细解释了执行计划中的关键信息,包括计划节点的操作符、代价估算等内容。此外,还提供了如何通过收集统计信息来提高代价估算准确性的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是执行计划?
一条SQL语句在DM数据库中执行过程或访问路径的描述;可以通过执行计划了解到SQL是否按照理想的路线来执行。
2、如何查看达梦执行计划?
–通过EXPLAIN命令查看
EXPLAIN SELECT * FROM SYSOBJECTS;
在这里插入图片描述
3、执行计划包含哪些重要信息?

  • 一个执行计划由若干个计划节点组成,如上图中的1、2、3 ;
  • 每个计划节点中包含操作符(CSCN2)和它的代价([1, 1100, 396])等信息;
  • 代价由一个三元组组成[代价,记录行数,字节数] ;
  • 代价的单位是毫秒,记录行数表示该计划节点输出的行数,字节数表示该计划节点输出的字节数;
  • 解读一下第三个计划节点:操作符是CSCN2即全表扫描,代价估算是1ms,扫描的记录行数是1100行,输出字节数是396个;

关于详细操作符解释请查看《达梦管理员手册》
4、另外关于操作符估算代价的一点点知识
explan select substr(id+3),id from sysobjects where name=‘aa’;
在这里插入图片描述
关于上图SLCT2估算得出的27的计算
select * from v$dm_ini where para_name LIKE ‘%SEL_RATE%’;
在这里插入图片描述
当过滤是等于值并且没有找到结果集的时候,会根据SSCN扫出来1100*0.025估算得出27。

当然了我们也可以通过收集统计信息来让估算代价更准确一些:
stat 100 on sysobjects(name);
explan select substr(id+3),id from sysobjects where name=‘aa’;
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值