注册

关于层次查询中,LEVEL关键词的无法屏蔽的说明

达梦技术-郭洋 2025/04/25 129 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:麒麟V10
【CPU】:鲲鹏920
【问题描述】

背景:

现有两个DM8数据库,版本分别为:

序号 IP 版本号
1 10.29.143.20 1-2-138-2022.09.09-169171-20009-ENT (以下简称"22版")
2 10.29.29.4 1-3-140-2024.05.27-229704-20093-ENT (以下简称"24版")

原始数据如下:

SELECT tenant_id,PARENT_CODE_VALUE,CODE_NAME, CODE_VALUE,LEVEL as le,"LEVEL" as cu_le FROM HOLLYICS.tbl_sys_tree_dic_code WHERE CODE_TYPE_VALUE ='administrative_division_code' and tenant_id = 'T000' and CODE_VALUE in ('130105','130100','130000');

image.png!

复现过程:

1、在22版数据库中,查询出的数据如下:(正确数据)

image.png

2、在24版中,查询出的数据如下:(错误数据)

image.png

3、在执行计划层面,发现两者的执行计划不同。

22版的执行计划如下:(数据正确)

image.png

24版的执行计划如下:(数据错误)

image.png

4、未在dm.ini中,找到与层次查询中level字段相关的参数。

考虑是否存在以下问题:

问题1:无论LEVEL字段是否加引号,所呈现的值都是虚列,而非LEVEL字段。所以,是否在层次查询中,关键字屏蔽功能失效?

问题2:在22版数据库中,level虚列的排序与24版中level虚列的排序方式不一样,且没有相关的dm.ini的参数进行控制。所以,是否在查询层面存在某些潜在的问题?

回答 0
暂无回答
扫一扫
联系客服