数据量3万条,联合查询(查询的参数在两张表上都有),查询速度慢,大概30多秒出数据,请教怎样优化?

第一张表:SELECT a.qybh,a.qymc,a.xmyjid,a.xmmc,a.yjxmbh,a.zbtzsrq,a.zbj,a.jsdw,a.htj,a.xmdz,a.jgysrq FROM gzcc_xmyj a

第二张表:select xmyjid,gclb,fbtz,sl from gzcc_xmgm


通过xmyjid关联后,通过查询参数,数据要几十秒才能出来:

SELECT a.qybh,a.qymc,a.xmyjid,a.xmmc,a.yjxmbh,a.zbtzsrq,a.zbj,a.jsdw,a.htj,a.xmdz,a.jgysrq,b.gclb,b.fbtz,b.sl 

FROM gzcc_xmyj a

left join (select xmyjid,gclb,fbtz,sl from gzcc_xmgm) b

on a.xmyjid = b.xmyjid


或者三张表联合查询 时的  sql优化  

image.png

image.png

没有写参数sql 是直接写在查询表上

FineReport saitey 发布于 2020-12-9 14:20 (编辑于 2020-12-9 14:30)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
lmmtttLv5见习互助
发布于2020-12-9 14:23

1、不要select *;

2、看能不能union改成union all;

3、新建一个表,把需要用到的维度和数据存一块;

4、尽量不要在报表中使用过滤;

5、尽量不要使用公式,直接用sql计算

最佳回答
0
krystal033Lv7高级互助
发布于2020-12-9 14:24

https://help.fanruan.com/finereport/doc-view-435.html?source=1   性能优化 

给你一个建议就是先分页看看加载的快不快

最佳回答
0
shirokoLv6资深互助
发布于2020-12-9 14:26

left join已经是效率很高了。。你就是数据太多了。。

参数sql你怎么写的没放上来;

30秒你指的应该不是sql时间是整个报表出的时间吧。。几万的数据30秒算快了。

想要进一步提高效率可以减少每页的行数

  • saitey saitey(提问者) 主要是两张表都要查询到, 联合查询写不了参数sql
    2020-12-09 14:29 
  • 4关注人数
  • 514浏览人数
  • 最后回答于:2020-12-9 14:30
    请选择关闭问题的原因
    确定 取消
    返回顶部