关联数据集查了两边导致查询很慢

image.png

把两个数据集关联后,查询时就会执行两边语句,导致查询很慢,怎么解决

FineReport yzm136176 发布于 2023-11-1 15:54
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-7-13 21:23

如果你的两个查询SQL都写得很长,

建议写一个存储过程,

把数据先处理一遍

或是开启数据缓存

在进行报表展示

可以参考一下下面的方法

性能优化指导手册 https://help.fanruan.com/finereport/doc-view-435.html

image.png

image.png

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-11-1 15:57(编辑于 2023-11-1 16:22)

多数据源报表简介

不用关联数据集,用过滤试试

select * from a where a=1

union

 select * from a  where b=1

  • yzm136176 yzm136176(提问者) 但是这两个数据集查的是同一个字段的值,只是根据查询条件不同,查询数据集不同,单元格的数据列是一个,
    2023-11-01 16:16 
  • 用户k6280494 用户k6280494 回复 yzm136176(提问者) 那你在写一个数据集啊 用 union 链接
    2023-11-01 16:21 
  • yzm136176 yzm136176(提问者) 这两个语句都很长
    2023-11-01 16:30 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-11-1 16:23

这个可以使用下if函数判断

例如

${if(len(lineName)=0,"select * from 表 where 字段='"+参数1+"'","select * from 表 where 字段='"+参数2+"'")}

  • yzm136176 yzm136176(提问者) 这两个语句很长
    2023-11-01 16:28 
  • snrtuemc snrtuemc 回复 yzm136176(提问者) 我只是示例,按示例格式,修改下语句就可以,这样只会查询一个sql语句了
    2023-11-01 16:30 
  • yzm136176 yzm136176(提问者) 回复 snrtuemc 关键是里面的子查询有的也不一样
    2023-11-01 16:48 
  • snrtuemc snrtuemc 回复 yzm136176(提问者) 没关系啊,已近有${}l了sql语句用引号和参数拼接,一样的啊。。
    2023-11-01 16:50 
  • 3关注人数
  • 239浏览人数
  • 最后回答于:2024-7-13 21:23
    请选择关闭问题的原因
    确定 取消
    返回顶部