问题描述:

数据分页是做统计优化效率的最佳方式。但是XPO框架做的分页还是查询速度很慢,这是为什么?

问题原因:

  1. 做分页的逻辑原理——做分页必须有以下三个条件才可以做到分页:

    • 总页数
    • 当前页数
    • 当前页数的数据
  2. 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分页问题——明明已经做分页为什么加载数据那么慢相关推荐

  1. android 之ListView分页效果以及从网络上加载数据一系列的综合运用

    数据分页策略: <1>:用多少查多少 <2>:全部查询出来,再进行分页处理 数据分页的有关算法: (1):起始索引值 = (当前页-1)*每页显示的记录数 (2):结束索引值 ...

  2. List 分页加载数据控制机制

    分页加载是一种应用很广泛的数据展示控制机制,相信绝大多数开发者对于这一套机制都非常熟悉.这篇文章的主要目的结合实际的使用场景,对以往在开发中遇到一些概念进行梳理,归纳的同时加深理解,也希望能帮助更多刚 ...

  3. easyui datatable ajax 加载数据,ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询...

    js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers ...

  4. 微信小程序数据拼接_最佳方式实现微信小程序分页加载数据

    一般小程序做分页加载数据,会做一些下拉加载更多.然后上拉刷新的操作.数据放在一个for循环里去加载,数据源是一个数组对象.在加载下一页数据时,将下一页的数据拼到当前数组后面.这样的确可以实现分页加载数 ...

  5. 小程序云函数加载数据20条限制 分页更加丝滑

    小程序云函数加载数据20条限制 处理分页加载 云函数无需突破20条.100条的局限,让分页更加丝滑: 首先认识一下,云函数中的 api 方法 代码实现 云函数无需突破20条.100条的局限,让分页更加 ...

  6. 页面上拉加载数据(也就是上拉实现分页)

    之所以发这个博客是因为网上百度了太多  没法直接套用  所以写这个   可以直接套用   先上代码截图 <script type="text/javascript"> ...

  7. listView分批和分页加载数据

    在Android应用程序中,有时候会向listView中加载很多数据,向listView中加载数据是一个耗时的过程,加载过多的数据用户停留在listView上,一直等待,给用户的体验特别不好,比如向服 ...

  8. 分组显示的ListView分页加载数据

    参考:  http://www.cnblogs.com/qianxudetianxia/archive/2011/06/07/2074326.html 分组的ListView的拖拽  http://w ...

  9. ajax实现向上正在加载,向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)

    /**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name a ...

最新文章

  1. 音频(3):iPod Library Access Programming Guide:Introduction
  2. 安装IE8不能调试VS2005的解决办法
  3. python中并发编程基础1
  4. 半径对氢原子基态能级的影响H
  5. 关于0基础磁盘管理(gpt UEFI...)最好的一篇文章(来自gentoo linux)
  6. python log日志_Python中logging日志的四个等级和使用
  7. treeview子节点文本过长超过DIV自动换行CSS解决
  8. 安卓linux开机画面,Android开机logo简单修改方法
  9. python 欧姆龙plc通信_二进制PLC通信校验和
  10. 运营商价格战终于打起来了,中国联通也有19元套餐
  11. 题解报告:hdu 2647 Reward(拓扑排序)
  12. 00 后搞视频号月入过万,怎么做?
  13. Life feelings--13--青春不毕业,那些心里念念叨叨难以忘怀的记忆
  14. Fast-Paced Multiplayer (Part I): Introduction
  15. 终于等到你:国内黑客团队360Vulcan公布iOS 12.1越狱漏洞细节
  16. 利用脚手架创建vue项目时报这个错误,哪位大神帮忙解答一下,实在是找到解决办法了。万分感谢
  17. 高通平台android 8.1基线某款usb camera打开dev/video1出错
  18. 华为发生工商变更,瞄准5G车联网大蛋糕!(附产业重要数据下载)
  19. 金蝶K3开发-工业单据自定义控件
  20. openblas android平台,ubuntu16.04 openblas库安卓arm64-v8a编译

热门文章

  1. android拦截电话并且不留下通话记录,具透丨iOS 10 支持拦截骚扰电话了,这些事情你应该知道...
  2. 一般实验室、专用实验室及研究工作室的设计
  3. 五分位数取哪几个_NBA中五个位置的划分依据是什么, 各有什么作用?
  4. 华东之旅--杭州第一天
  5. selenium登录账号密码
  6. 集成电路中的测试概述(一)
  7. 结构化电子病历的特点及优势
  8. 《Mybatis实现数据库多表查询》——————多对一
  9. python的分隔符_python基础一 ------字符串的多种分隔符分隔
  10. 会计与python结合cai wt-Python 读写文件中w与wt, r与rt的区别