XPO分页问题——明明已经做分页为什么加载数据那么慢

问题描述:

数据分页是做统计优化效率的最佳方式。但是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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值