注册

8.1和8.4对于聚合求和值不一样

陌徃 2026/06/02 507 8

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8.4
【操作系统】:麒麟
【CPU】:鲲鹏
【问题描述】*:
老版本:--05134284058-20230726-197096-20046 Pack4
新版本:--05134284368-20250430-272000-20149 Pack1
select t."c_SECTION_ID",sum(c_should_work_people_num)
from (
SELECT twcr."c_SECTION_ID" ,
twcr."c_SECTION_AREA_ID" ,
count(DISTINCT twcr."c_CAR_ID") AS c_should_work_people_num
FROM "t_uav_work_record20260526" twcr
WHERE twcr."c_WORK_DATE" = '2026-05-26'
AND twcr."c_DB_STATUS" = 0
AND IfNULL(twcr."c_RECORD_TYPE", 1) = 1
and twcr."c_SECTION_ID" ='24CE8BB1-A066-4FBF-A0AA-23A5F170B43B'
GROUP BY twcr."c_SECTION_ID",
twcr."c_SECTION_AREA_ID")t
group by "c_SECTION_ID";
同一张表,同一个sql,执行出来结果不一样,老版本27,新版本7,结果27是正确的,新版本7是不对的
image.png
image.png
执行计划:
1 #NSET2: [2, 1, 162]
2 #PRJT2: [2, 1, 162]; exp_num(2), is_atom(FALSE)
3 #SAGR2: [2, 1, 162]; grp_num(1), sfun_num(1), distinct_flag[0]; slave_empty(0) keys(T.c_SECTION_ID)
4 #PRJT2: [1, 1, 162]; exp_num(2), is_atom(FALSE)
5 #SAGR2: [1, 1, 162]; grp_num(2), sfun_num(1), distinct_flag[1]; slave_empty(0) keys(TWCR.c_SECTION_ID, TWCR.c_SECTION_AREA_ID)
6 #SORT3: [1, 1, 162]; key_num(2), is_distinct(FALSE), is_adaptive(0), MEM_USED(2048KB), DISK_USED(0KB)
7 #SLCT2: [1, 1, 162]; (TWCR.c_DB_STATUS = 0 AND TWCR.c_SECTION_ID = '24CE8BB1-A066-4FBF-A0AA-23A5F170B43B' AND TWCR.c_WORK_DATE = var1 AND exp11 = 1)
8 #CSCN2: [1, 227, 162]; INDEX33555466(t_uav_work_record20260526)

新版本
image.png
image.png
执行计划:

1 #NSET2: [1, 1, 162]
2 #PRJT2: [1, 1, 162]; exp_num(2), is_atom(FALSE)
3 #SAGR2: [1, 1, 162]; grp_num(1), sfun_num(1), opt_num(0), distinct_flag[1]; slave_empty(0) keys(TWCR.c_SECTION_ID), dist_arg_opt[0]
4 #SORT3: [1, 1, 162]; key_num(1), partition_key_num(0), is_distinct(FALSE), is_adaptive(0), MEM_USED(0KB), DISK_USED(0KB)
5 #SLCT2: [1, 1, 162]; (TWCR.c_DB_STATUS = 0 AND TWCR.c_SECTION_ID = '24CE8BB1-A066-4FBF-A0AA-23A5F170B43B' AND TWCR.c_WORK_DATE = var1 AND exp11 = 1)
6 #CSCN2: [1, 227, 162]; INDEX33555471(t_uav_work_record20260526); btr_scan(1)

以上情况该怎么解决:用户业务大多都是同一类型的sql,目前查出来新版本执行出来的值都不对,无论是新部署的dm8.4还是升级后的dm8.4

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