com.fr.restriction.MemoryAlarmException: SQL执行时长超过

com.fr.restriction.MemoryAlarmException: SQL执行时长超过180S

几个表总数据量在1万条,查询出来100条数据,这个SQL时间太长,如何优化呢? 


SELECT '合同工' as '用工形式',CONVERT(CHAR(6),a.fd_tingQiJiaoNianYue,112) AS fd_time,e.fd_name,b.fd_zhengJianHaoMa,b.fd_xingMing,b.fd_huJi,b.fd_ruShenHuShiJian,b.fd_minZu,b.fd_shouJiHaoMa,b.fd_tongXunDiZhi,b.fd_geRenShenFen,b.fd_jiaoCunJiShu,b.fd_xueLi,b.fd_yiLiaoJiaoFeiDangCi,b.fd_shebaogongzuobumen,

c.depName, c.depCode, c.danweiName, c.danweiDepCode,b.fd_sheBaoBianDongLeiXing,  b.fd_sheBaoQuanLuJing,     a.fd_biaoDanBianHao

FROM ekp_073_sbgjj a INNER JOIN ekp_073_sbgjj_sb b ON a.fd_id=b.fd_parent_id 

INNER JOIN Z_UserBumenDanwei c ON b.fd_dengLuMing=c.loginId

INNER JOIN km_review_main d ON a.fd_id = d.fd_id

INNER JOIN sys_org_element e ON b.fd_xingMing=e.fd_id

WHERE d.doc_status=30

AND b.fd_sheBaoQuanLuJing like REPLACE('%%', ',', '_') 

AND a.fd_liuDongNianYue='202006' 

AND 1=1 


FineReport kevinliu 发布于 2020-6-15 10:46
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
anhuihaiwei2005Lv4见习互助
发布于2020-6-15 11:49

sql执行时是从后向前执行,条件1=1及可以将大量数据筛选掉的,卸载where后面。表关联的时候涉及数据量大的表,关联的字段尽量加索引。尽量避免用like replace,因为即使这个字段有索引,也会全表。

  • kevinliu kevinliu(提问者) sql执行时是从后向前执行,条件1=1及可以将大量数据筛选掉的,卸载where后面。表关联的时候涉及数据量大的表,关联的字段尽量加索引。 好一点点,还是很慢。 感谢这么多的指导。
    2020-06-17 15:05 
最佳回答
0
卫九星Lv4初级互助
发布于2020-6-15 11:00

加个索引呢

最佳回答
0
Ethan_12Lv6见习互助
发布于2020-6-15 13:52

先试试去掉like那句的条件,看看需要执行多久

  • 4关注人数
  • 916浏览人数
  • 最后回答于:2020-6-15 13:52
    请选择关闭问题的原因
    确定 取消
    返回顶部