为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1 企业版
【操作系统】:麒麟
【CPU】:
【问题描述】*:MERGE INTO 语句执行时间超长,已经超过100分钟,进程是ACTIVE状态。,服务器上只有7个DM的活动session。其它5个是SELECT查询,1个是正在收集其它用户的统计信息。
已经排除了死锁、阻塞等情况,只有此进程操作这两张表。
回答 0
暂无回答
威子
(1)可以将where 时间条件前置到 on条件里,在做连接时直接查询符合的不至于全表扫描,根据你的sql我理解完全没必要分组去最大值没有意义 仅供参考
(2)直接使用update set a.issuccess = '1' where a.hz_month = '202401' and exists(select 1 from xn_tsomx where x.status = '1' and x.bbname = a.aaname); 记得查询列加索引
(1)可以将where 时间条件前置到 on条件里,在做连接时直接查询符合的不至于全表扫描,根据你的sql我理解完全没必要分组去最大值没有意义 仅供参考
(2)直接使用update set a.issuccess = '1' where a.hz_month = '202401' and exists(select 1 from xn_tsomx where x.status = '1' and x.bbname = a.aaname); 记得查询列加索引