UDN-企业互联网技术人气社区

板块导航

浏览  : 5257
回复  : 2

[分析云] 初始查询大量数据不采用分页导致性能问题

[复制链接]
太子旭的头像 楼主
发表于 2015-8-7 16:18:40 | 显示全部楼层 |阅读模式
某项目打开功能节点耗时10秒。该功能节点打开时带有一次查询,同时将查询结果分页显示,通过NMC录制单点日志分析最耗时的远程调用:
<record>
         <id>10</id>
         <server>ncMem01</server>
         <callid>1428488388008-6452</callid>
<remotecallmethod>nc.itf.dcs.international.claimbd.parttypeset.service.IDcsPartTypeSetQueryService.queryPksByWhereSql</remotecallmethod>
         <busiaction>打开节点-配件类型设置</busiaction>
         <remoteaddr>172.31.18.32:54055</remoteaddr>
         <userid>1001FF1000000004U0KN</userid>
         <thread>schdtask_SPMS-PRDa-0402:7002_1         callid</thread>
         <begintime>2015-04-08 18:23:49</begintime>
         <costtime>10145.0</costtime>
         <sqlnum>1.0</sqlnum>
         <sqlcosttime>2603.0</sqlcosttime>
         <readrownum>100000.0</readrownum>
         <readresulttime>842.0</readresulttime>
         <writetoclienttime>1247.0</writetoclienttime>
         <writetoclientbytes>276949.0</writetoclientbytes>
         <readfromclienttime>0.0</readfromclienttime>
         <readfromclientbytes>613.0</readfromclientbytes>
         <notclosedconnectioncount>0.0</notclosedconnectioncount>
         <cc>1.0</cc>
         <cmc>0.0</cmc>
</record>

以上信息发现该远程调用耗时10秒,其中sql耗时2.6秒,sql查询结果集10万条,网络流量277KB,传输耗时1.2秒。
我们将该远程调用的sql手动执行一次,发现实际结果集48万条以上。
image019.png

这是因为虽然后台实际查询了48万条数据,但是中间件只截留了10万条在前台显示。
打开节点带有一个如此大数据量的查询,除了查询本身耗时外,网络流量严重超标,前台数据显示都导致打开节点性能降低。
建议改进方案:
l  根据业务场景,默认查询加上查询条件,限制查询结果集大小。
l  使用懒加载方式查询,即不用每次查询全部数据,后台分页处理。
知识点:单点性能分析,问题定位,懒加载。

发表于 2016-5-30 15:19:04 | 显示全部楼层
顶               
使用道具 举报

回复

发表于 2016-10-29 10:40:55 | 显示全部楼层
想问一下,为什么不做分页按钮实现?
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部