insert into select语句执行特别慢

【 TiDB 使用环境】测试
【 TiDB 版本】6.1.2
【遇到的问题:问题现象及影响】
执行insert into select语句执行特别慢,同时没有做其他操作,语句如下:
insert into its_sjzt_jg.DW1_MX_JF_YSXX_YF ( ID , XMBH , XMMC , KMMC , KMJCID , WBS , JH , DQSH , SCJH , TXSM , BZ , TBRQ , BBH , XMID , SJID , XMLX_DM , YJYWLX_DM , EJYWLX_DM , SJYWLX_DM , SJYWLXX_DM , QYFRT_DM , KHJLITCODE , GZSYB_DM , XMCBZX_DM , SFARYJS , XMBQ , XMZBQ , SQZCNR , JFFZRITCODE , XMFZRITCODE , SQZCKSRQ , SQZCJSRQ , QYCQYXMH , KJZHTXMH , SFXYYS , SL , HL , HTYDFWKSRQ , HTYDFWJSRQ , WGBL , QYZT_DM , SWZT_DM , JFZT_DM , CWZT_DM , XMQYRQ , XMLXRQ , XMJXRQ , XMQDRQ , XMGBRQ , XMZTRQ , XMZFRQ , GZJFB_DM , JFBMCBZX_DM , JFLX_DM , ZZXMJLITCODE , ZZXMZJITCODE , ZZXMJLSJH , JFJHKSRQ , JFJHJSRQ , XMZTXDZ , ZHGXSJ , ZHGXCZRITCODE , SZBG , QYKHID , ZZYHID , XMDL_DM , XMXL_DM , HTID , GZJJFAB_DM , FZXMZJITCODE , JFSSCS , XMJLITCODE , XYLXYJ_DM , XYLXEJ_DM , PGKSRQ , PGJSRQ , JFJKR , XMXX , ZZJZLJLITCODE , XYLXSJ_DM , GLCPMC , GLCPBB , FZXMJLITCODE , XMJZLJLITCODE , XMXLX_DM , XMGLJB , KHX , CPXYWX , GLXM , GLYY , SRQRFS_DM , SFKJZHTXDZXM , SFKJZHT , SFXYJSSQZC , QYLX_DM , NDYF , ND , YF , JFBG ,IDF_FLAG,IDF_XH,IDF_ACTIVITY_NAME,IDF_BIZ_PRIMARY)
SELECT t.ID ,
d.XMBH ,
d.XMMC ,
t.KMMC ,
t.KMJCID ,
t.WBS ,
t.JH ,
t.DQSH ,
t.SCJH ,
t.TXSM ,
t.BZ ,
t.TBRQ ,
t.BBH ,
d.XMID ,
d.SJID ,
d.XMLX_DM ,
d.YJYWLX_DM ,
d.EJYWLX_DM ,
d.SJYWLX_DM ,
d.SJYWLXX_DM ,
d.QYFRT_DM ,
d.KHJLITCODE ,
d.GZSYB_DM ,
d.XMCBZX_DM ,
d.SFARYJS ,
d.XMBQ ,
d.XMZBQ ,
d.SQZCNR ,
d.JFFZRITCODE ,
d.XMFZRITCODE ,
d.SQZCKSRQ ,
d.SQZCJSRQ ,
d.QYCQYXMH ,
d.KJZHTXMH ,
d.SFXYYS ,
d.SL ,
d.HL ,
d.HTYDFWKSRQ ,
d.HTYDFWJSRQ ,
d.WGBL ,
d.QYZT_DM ,
d.SWZT_DM ,
d.JFZT_DM ,
d.CWZT_DM ,
d.XMQYRQ ,
d.XMLXRQ ,
d.XMJXRQ ,
d.XMQDRQ ,
d.XMGBRQ ,
d.XMZTRQ ,
d.XMZFRQ ,
d.GZJFB_DM ,
d.JFBMCBZX_DM ,
d.JFLX_DM ,
d.ZZXMJLITCODE ,
d.ZZXMZJITCODE ,
d.ZZXMJLSJH ,
d.JFJHKSRQ ,
d.JFJHJSRQ ,
d.XMZTXDZ ,
d.ZHGXSJ ,
d.ZHGXCZRITCODE ,
d.SZBG ,
d.QYKHID ,
d.ZZYHID ,
d.XMDL_DM ,
d.XMXL_DM ,
d.HTID ,
d.GZJJFAB_DM ,
d.FZXMZJITCODE ,
d.JFSSCS ,
d.XMJLITCODE ,
d.XYLXYJ_DM ,
d.XYLXEJ_DM ,
d.PGKSRQ ,
d.PGJSRQ ,
d.JFJKR ,
d.XMXX ,
d.ZZJZLJLITCODE ,
d.XYLXSJ_DM ,
d.GLCPMC ,
d.GLCPBB ,
d.FZXMJLITCODE ,
d.XMJZLJLITCODE ,
d.XMXLX_DM ,
d.XMGLJB ,
d.KHX ,
d.CPXYWX ,
d.GLXM ,
d.GLYY ,
d.SRQRFS_DM ,
d.SFKJZHTXDZXM ,
d.SFKJZHT ,
d.SFXYJSSQZC ,
d.QYLX_DM ,
d.NDYF ,
d.ND ,
d.YF ,
d.JFBG ,
‘I’,1,‘ETL_CONF_DW1_MX_JF_YSXX_YF’, CONCAT(IFNULL(t.KMJCID ,‘’),‘@##@’,IFNULL(d.XMBH ,‘’),‘@##@’,d.NDYF ,‘@##@’,IFNULL(t.BBH ,‘’))
FROM its_sjzt_jg.DW0_JF_YSXX t
INNER JOIN its_sjzt_jg.DW1_MX_JF_YSXX_YF_ZJ_1 d
ON t.ID = d.XMID
AND d.TJJZRQ_JF <= t.YXQ_Z
AND d.TJJZRQ_JF >= t.YXQ_Q
AND t.YXQ_Z>=‘2022-02-09 00:00:00’

【资源配置】

【附件:截图/日志/监控】
1、查询涉及的两个表数据量如下:
select count() from its_sjzt_jg.DW0_JF_YSXX – 12140331
select count(
) from its_sjzt_jg.DW1_MX_JF_YSXX_YF_ZJ_1 – 1095186

2、执行计划

3、监控

4、集群配置
10个tikv节点,没有tiflash节点,每个tikv节点都是16核64G,跑任务的时候CPU一点感觉都没有,就有一个tidb节点内存涨的比较快,tidb节点32核128G内存。

可以先检查一下是不是select部分耗时很久。如果是的,可以看看是不是因为统计信息不准,走了indexjoin,导致查询速度太慢。
如果不是select部分慢,那就需要分批insert了,可以增加其他过滤条件,或者按小时来进行分批插入

explain select语句看看是不是执行计划不够优,先优化select,在看看explain insert执行计划。
当然也可以执行完整语句分析一下,在看看监控,是哪里耗时

这样写容易OOM,可以尝试用Tispark。我们有个项目也经常遇到这种问题,头疼。。

its_sjzt_jg.DW0_JF_YSXX t这个表的统计信息是不是不准,我看走了这个表的YXQ_Z索引,可以重新收集下统计信息,或者用hint指定全表试下。

我也是准备改为Tispark

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。