XPO分页问题——明明已经做分页为什么加载数据那么慢
问题描述:
数据分页是做统计优化效率的最佳方式。但是XPO框架做的分页还是查询速度很慢,这是为什么?
问题原因:
做分页的逻辑原理——做分页必须有以下三个条件才可以做到分页:
- 总页数
- 当前页数
- 当前页数的数据
XPO查询数据大致原理:
XPO会根据所需要的查询条件,排序等会组合成SQL语句。当你用ToList()方法获取数据或者Count获取数据条数。XPO会把所有数据加载到内存里面给你展示你想要的数据。(包括Linq也会有此操作)
解决方案:
XPO有一个EvaluateDatastoreCount()可以获取到当前所查询数据的条数,并且不会把数据加载内存里面
相关完整代码展示:
var collection = new XPCollection<来访记录>(Program.objectSpace.Session);
var pager = new XPPageSelector();
pager.Collection = collection;
pager.PageSize = 20;
pager.CurrentPage = 0;
var result = ((IListSource)pager).GetList() as IList<来访记录>;
var count = collection.EvaluateDatastoreCount()
XPO分页问题——明明已经做分页为什么加载数据那么慢相关推荐
- android 之ListView分页效果以及从网络上加载数据一系列的综合运用
数据分页策略: <1>:用多少查多少 <2>:全部查询出来,再进行分页处理 数据分页的有关算法: (1):起始索引值 = (当前页-1)*每页显示的记录数 (2):结束索引值 ...
- List 分页加载数据控制机制
分页加载是一种应用很广泛的数据展示控制机制,相信绝大多数开发者对于这一套机制都非常熟悉.这篇文章的主要目的结合实际的使用场景,对以往在开发中遇到一些概念进行梳理,归纳的同时加深理解,也希望能帮助更多刚 ...
- easyui datatable ajax 加载数据,ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询...
js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers ...
- 微信小程序数据拼接_最佳方式实现微信小程序分页加载数据
一般小程序做分页加载数据,会做一些下拉加载更多.然后上拉刷新的操作.数据放在一个for循环里去加载,数据源是一个数组对象.在加载下一页数据时,将下一页的数据拼到当前数组后面.这样的确可以实现分页加载数 ...
- 小程序云函数加载数据20条限制 分页更加丝滑
小程序云函数加载数据20条限制 处理分页加载 云函数无需突破20条.100条的局限,让分页更加丝滑: 首先认识一下,云函数中的 api 方法 代码实现 云函数无需突破20条.100条的局限,让分页更加 ...
- 页面上拉加载数据(也就是上拉实现分页)
之所以发这个博客是因为网上百度了太多 没法直接套用 所以写这个 可以直接套用 先上代码截图 <script type="text/javascript"> ...
- listView分批和分页加载数据
在Android应用程序中,有时候会向listView中加载很多数据,向listView中加载数据是一个耗时的过程,加载过多的数据用户停留在listView上,一直等待,给用户的体验特别不好,比如向服 ...
- 分组显示的ListView分页加载数据
参考: http://www.cnblogs.com/qianxudetianxia/archive/2011/06/07/2074326.html 分组的ListView的拖拽 http://w ...
- ajax实现向上正在加载,向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)
/**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name a ...
最新文章
- 音频(3):iPod Library Access Programming Guide:Introduction
- 安装IE8不能调试VS2005的解决办法
- python中并发编程基础1
- 半径对氢原子基态能级的影响H
- 关于0基础磁盘管理(gpt UEFI...)最好的一篇文章(来自gentoo linux)
- python log日志_Python中logging日志的四个等级和使用
- treeview子节点文本过长超过DIV自动换行CSS解决
- 安卓linux开机画面,Android开机logo简单修改方法
- python 欧姆龙plc通信_二进制PLC通信校验和
- 运营商价格战终于打起来了,中国联通也有19元套餐
- 题解报告:hdu 2647 Reward(拓扑排序)
- 00 后搞视频号月入过万,怎么做?
- Life feelings--13--青春不毕业,那些心里念念叨叨难以忘怀的记忆
- Fast-Paced Multiplayer (Part I): Introduction
- 终于等到你:国内黑客团队360Vulcan公布iOS 12.1越狱漏洞细节
- 利用脚手架创建vue项目时报这个错误,哪位大神帮忙解答一下,实在是找到解决办法了。万分感谢
- 高通平台android 8.1基线某款usb camera打开dev/video1出错
- 华为发生工商变更,瞄准5G车联网大蛋糕!(附产业重要数据下载)
- 金蝶K3开发-工业单据自定义控件
- openblas android平台,ubuntu16.04 openblas库安卓arm64-v8a编译
热门文章
- android拦截电话并且不留下通话记录,具透丨iOS 10 支持拦截骚扰电话了,这些事情你应该知道...
- 一般实验室、专用实验室及研究工作室的设计
- 五分位数取哪几个_NBA中五个位置的划分依据是什么, 各有什么作用?
- 华东之旅--杭州第一天
- selenium登录账号密码
- 集成电路中的测试概述(一)
- 结构化电子病历的特点及优势
- 《Mybatis实现数据库多表查询》——————多对一
- python的分隔符_python基础一 ------字符串的多种分隔符分隔
- 会计与python结合cai wt-Python 读写文件中w与wt, r与rt的区别