注册

update语句优化,路过的大佬停下

选择成为什么样的人 2024/01/31 783 12 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:
【CPU】:
【问题描述】*:我需要对比:t_case_comparison_details_2、T_AP_FILE_DETAIL两表某些数据是否存在一些字段内容相同的,然后更新t_case_comparison_details_2数据的状态。
t_case_comparison_details_2表有1w数据,T_AP_FILE_DETAIL有20w数据。执行了大概三十分钟结果都没出来,不知道是什么情况......
SQL语句如下:
UPDATE
t_case_comparison_details_2 t1
SET t1.IS_PASS = 3
WHERE t1.batch_id = 'd76689e44f034f2d8bb83c68eb794445'
AND t1.is_pass = 4
AND EXISTS(SELECT 1
FROM T_AP_FILE_DETAIL t2
WHERE t2.DELETE_STATE = '0'
AND substr(t2.ajnd, 1, 4) = substr('2023-01-01', 1, 4)
AND substr(t1.SLSJ, 1, 4) = substr(t2.ajnd, 1, 4)
AND t2.reason IS NOT NULL
AND t2.xyr IS NOT NULL
AND t2.cbr IS NOT NULL
AND (trim(t1.AJMC) NOT LIKE '%' || trim(triling '罪' FROM t2.reason) || '%'
AND trim(t1.AJMC) NOT LIKE '%' || trim(triling '案' FROM t2.reason) || '%' )
AND t2.CBR LIKE '%' || REGEXP_REPLACE(t1.CBR,'[,、,]','')|| '%'
AND t1.AJMC LIKE '%' || t2.xyr || '%' );
再附上一个达梦管理工具的预估执行计划:
update优化.png

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