数据量大查询速度慢

现在使用报表遇到了一些问题,在某些报表出现了数据量比较大 打开时间很慢的情况。是否有什么解决方案呢?是否有官方的分页显示或者打开一部分数据显示,其他数据一边查询一边显示的方法。分页显示不是分页报表,分页报表本质还是一次查询完所有数据然后分页显示,依旧比较慢,而且会有填报报表数据量大的情况。

LIMIT (pageNo - 1) * pageSize, pageSize;  pageNo :页码   pageSize:每页数据数量

用sql语句这样可以限制每页数据查询量,但是如何获取报表中页码作为参数并且在点击下一页时自动查询呢

FineReport 用户DRQXF9153762 发布于 2023-1-30 17:02 (编辑于 2023-1-31 11:38)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
996433090Lv6初级互助
发布于2023-1-30 18:31(编辑于 2023-1-31 13:34)

帆软-分页.rar

sql分页几百万行也可以很快的

  • DTTYWT DTTYWT 你好 请问sql分页的意思是一页显示少量数据(比如50条) 分很多页(10000页)吗?
    2023-01-31 08:35 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) sql分页?。咋实现呀 我嗖一下
    2023-01-31 10:15 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) LIMIT (pageNo - 1) * pageSize, pageSize; pageNo :页码 pageSize:每页数据数量 用sql语句这样可以限制每页数据查询量,但是如何获取报表中页码作为参数并且在点击下一页时自动查询呢
    2023-01-31 11:38 
  • 996433090 996433090 回复 用户DRQXF9153762(提问者) 用2个list,第一个是具体的数据集,第二个是总记录数
    2023-01-31 13:33 
  • 996433090 996433090 回复 用户DRQXF9153762(提问者) 写了一份word,里面很详细。
    2023-01-31 13:35 
最佳回答
0
严浩文Lv4见习互助
发布于2023-1-30 17:05

可以试试将数据集进行缓存

最佳回答
0
runnerLv7资深互助
发布于2023-1-30 17:06(编辑于 2023-1-30 17:06)
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 填报分页这个我已经实现了,但是感觉对速度好像没有什么实质的帮助
    2023-01-31 08:06 
  • runner runner 回复 用户DRQXF9153762(提问者) 你sql执行的快慢?前面页面多少数据量
    2023-01-31 09:26 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 runner sql执行五六秒,十万左右的数据,十几条数据列
    2023-01-31 10:10 
  • runner runner 回复 用户DRQXF9153762(提问者) 那你报表加载时间是多长时间,十万数据分页应该没有问题的
    2023-01-31 10:10 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 runner 十几秒没有出来就没有继续运行下去了,因为主要是汇总查询,采用了分页的行式报表引擎,七秒左右就可以查询出来
    2023-01-31 10:34 
最佳回答
0
胖哒哒君Lv5见习互助
发布于2023-1-30 17:16(编辑于 2023-1-30 17:19)

解决方法有以下几种方法:

  1. 优化数据集sql 语句。

  2. 使用抽数缓存插件

    地址:https://market.fanruan.com/plugin/8e8739e2-9b33-4ce1-a3e8-6c8976c0d792

  3. 能再sql 计算的逻辑不要写到页面

  4. 靠硬件 加网速,加内存,换显卡

具体问题具体对待

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) sql已经优化了,买的是10版本不是11版本没有抽数缓存。后面的暂时不大现实。。客户的要求
    2023-01-31 10:13 
  • 胖哒哒君 胖哒哒君 回复 用户DRQXF9153762(提问者) 抽数缓存目前就只有10版本的,而且是免费的
    2023-01-31 11:49 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 胖哒哒君 我在帆软登录那个页面看系统设置 没有抽数缓存这个功能选项。。
    2023-01-31 16:41 
  • 胖哒哒君 胖哒哒君 回复 用户DRQXF9153762(提问者) 我在第一个回答中附了一个地址,复制地址就是抽数缓存插件的下载地址,安装,配置即可,地之内也有相关使用链接的地址
    2023-02-01 00:42 
最佳回答
0
FR一小白Lv3见习互助
发布于2023-1-30 17:19

中间表

最佳回答
0
cheng1217Lv5见习互助
发布于2023-1-31 08:12

让使用者查询时筛选范围呢 ex一段时间范围的数据20221231~20230131

最佳回答
0
mind_childLv6见习互助
发布于2023-1-31 08:57

你可以用后端分页的方法,我给你模板,你参考下,利用sql的第X行到第Y行的过滤方法实现的。分页的按钮都是用的js去动态传参。

模板注意事项:

    

1.必须要有两个sql,一个是行数,一个是分页的sql。

2.分页用的页码参数是${page}(给了个默认值,默认从第一页开始)

3.每页行数的参数是${pageNumc}(也给了个默认值,默认每页50行)

4.查询按钮里面有JS

分页demo.rar

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 额,有两个问比较疑惑。 1.有的模板是多数据集拼接的 都要分页sql和行数一起存在吗 2.这种后端方式和帆软报表的行式引擎方式相比较效率似乎差不多吗。同时也无法在填报报表内使用
    2023-01-31 11:31 
  • mind_child mind_child 回复 用户DRQXF9153762(提问者) 我这个就是个参考,你可以把我的代码拷贝到填报预览里面做分页
    2023-02-01 08:40 
  • 7关注人数
  • 1001浏览人数
  • 最后回答于:2023-1-31 13:34
    请选择关闭问题的原因
    确定 取消
    返回顶部