找文章 / 找答案
精选问答 更多内容

[数据处理] 查看报告翻页时间很久

yhdata_0DaS7cER铂金二 来自手机 显示全部楼层 发表于 2023-6-27 20:45:58 |阅读模式 打印 上一主题 下一主题
10
未解决
永洪版本号9.4.3。现在修改了判断慢查询的时间为30秒,翻页可以显示,但是也很慢,时间在40秒左右,这中间有一部分时间是在init上。请问有什么方法可以加快查询时间?
mmexport1687869451087.jpg
回复

使用道具 举报

精彩评论4

yanieye 显示全部楼层 发表于 2023-6-27 21:04:33
这个图看着太模糊了,看不清楚呢。
回复

使用道具 举报

yhdata_0DaS7cER铂金二 显示全部楼层 发表于 2023-6-27 21:26:49
yanieye 发表于 2023-6-27 21:04
这个图看着太模糊了,看不清楚呢。

我重新发一下
回复

使用道具 举报

yhdata_0DaS7cER铂金二 来自手机 显示全部楼层 发表于 2023-6-27 21:44:58
yanieye 发表于 2023-6-27 21:04
这个图看着太模糊了,看不清楚呢。

翻页卡死问题现状分析
一:问题现状:
在机构和日期明确情况下数据量较大时,在第一次查询展示成功后,后续的翻页和跳转会出现等待卡死现象。
二:问题跟踪:
经过日志的分析和判断,初步定位由以下3点原因共同作用导致卡死现象产生。
1:翻页时会触发查询init动作(具体init触发原因未知),查询init超过5秒时的查询会被放到慢查询池中,优先级降低,优先处理快查询池中的查询请求,慢查询池中的请求会滞后发送。
2:大数据量的init动作会超过20秒,经测算,20万数据约6秒,700万数据从32秒到57秒不等,与查询数据源接口时间正相关。
3:数据源查询接口时间较长,在接近1亿数据中查询命中730万数据时,查询时间从,随着分页靠后查询时间增加。
以上原因中2,3是主因,1是次因且影响远低于2,3。三:修改后效果:
1:调整查询入快慢池超时时间判断,时间设置100秒,使所有请求不入慢池,时间可节省10秒左右。
2:修正数据源接口的sql,降低查询时间,数据查询性能大大提升,且降低了inti的时间。
PS:经过分析:测试环境中数据存同一机构同一天数据量命中过大730万,该原因导致查询缓慢且索引效果不大,在总数据1亿数据量的情况下,若命中不大时,界面展示不受影响。
回复

使用道具 举报

yanieye 显示全部楼层 发表于 2023-6-28 08:57:23
从提供的问题情况和跟踪过程来看,判断基本是准确的。
1. 使用了真分页的技术,采用的方式类似于select * from tablea where col机构=selected机构 and colDate=selectedDate limit displayedRows, rowsPerPage;
2. 数据库查询的时间包含两个部分:
2.1 是执行where的时间,可以通过保证where条件中用到的列和数据库索引的配合来提高查询效率;可以根据索引的实际效率调整where中的过滤的顺序来配合好;
2.2 是执行limit displayedRows,rowsPerPage的效率, 一般来说翻页也多,已经加载过的数据量也会也大,这会导致后续翻页的时候需要忽略的行数也显著增加,页数越靠后, 消耗时间越多。
也是为什么命中多的时候会慢,翻页之后会逐步变慢。
下面这个帖子里面有一些优化的方式,是通过过滤来替换Limit的方式,不过实现起来也会有一定的难度,可以参考一下是。
https://blog.csdn.net/bisal/article/details/131335748
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部