select distinct cast(ct.USER_ID as char) as USER_ID
from datumdb.dwa_grp_mem_info_d_20211031 dgmid
join datumdb.dwa_grp_mem_use_info_m_202110 ct
on cast(ct.GROUP_ID as char) = cast(dgmid.GROUP_ID as char);
最开始怀疑是因为左侧关联字段ct.GROUP_ID 加了函数造成索引失效,修改之后执行时间仍然在半小时以上,打开trace日志查看gnode层日志可见join返回行数远远大于两张源表的数据量,因此怀疑是笛卡尔积问题。
Exists语法适用于关联去重的场景。将关联字段改写为exists 写法后,SQL可以在1分钟内跑出结果
insert into tableXXX
select distinct ct.USER_ID from datumdb.dwa_grp_mem_info_d_20211031 dgmid
where exists (select 1 from datumdb.dwa_grp_mem_use_info_m_202110 ct where ct.GROUP_ID=dgmid.GROUP_ID)
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。