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’;