收集结果集
NSET 用于结果集收集的操作符,一般是查询计划的顶层节点
投影
PRJT 关系的“投影”(project)运算,用于选择表达式项的计算;广泛用于查询,排序,函数索引创建等
选择
SLCT 关系的“选择” 运算,用于查询条件的过滤。
简单聚集
AARG 用于没有group by的count sum age max min等聚集函数的计算
快速聚集
FAGR 用于没有过滤条件时从表或索引快速获取MAX/MIN/COUNT值;DM数据库是世界上单表不带过滤条件下取COUNT值最快的数据库
HASH分组聚集
HAGR 用于分组列没有索引只能走全表扫描的分组聚集,C2列没有创建索引
流分组聚集
SAGR 用于分组列是有序的情况下,可以使用流分组聚集,C1上已经创建了索引,SAGR2性能优于HAGR2
二次扫描
BLKUP 先使用2级别索引定位,再根据表的主键、聚集索引、rowid等信息定位数据行。
全表扫描
CSCN CSCN2是CLUSTER INDEX SCAN的缩写即通过聚集索引扫描全表,全表扫描是最简单的查询,如果没有选择谓词,或者没有索引可以利用,则系统一般只能做全表扫描。在一个高并发的系统中应尽量避免全表扫描
索引扫描
SSEK CSEK SSCN
SSEK2是二级索引扫描即先扫描索引,再通过主键、聚集索引、ROWID等信息去扫描表 CSEK2是聚集索引扫描只需要扫描索引,不需要扫描表 SSCN是索引全扫描,不需要扫描表
嵌套循环连接
NEST LOOP原理:两层嵌套循环结构,有驱动表和被驱动表之分。选定一张表作为驱动表,遍历驱动表中的每一行,根据连接条件去匹配第二张表中的行。驱动表的行数就是循环的次数,这个很大程度影响了执行效率
HASH JOIN的特点: 一般没索引或用不上索引时会使用该连接方式 选择小的表(或row source)做hash表 只适用等值连接中的情形
Hash连接比较消耗内存,如果系统有很多这种连接时,需调整以下3个参数: HJ_BUF_GLOBAL_SIZE HJ_BUF_SIZE HJ_BLK_SIZE
原理:使用较小的Row source 作为Hash table和Bitmap. 而第二个row source被hashed,根据bitmap与第一个row source生成的hash table 相匹配,bitmap查找的速度极快。
归并排序连接
MERGE SORT的特点: 无驱动表之分,随机读很少 两个表都需要按照连接列排序,需要消耗大量的cpu和额外的内存
详细手册可参考达梦官方网站,或登录社区进行交流学习
https://eco.dameng.com