在采用参数int pageNum和int pageSize的方法中,我尝试根据特定的页面和大小从动态返回数据。
我使用的是一个QueryExpression,我设置了exp.PageInfo页码和页面大小来实现这一点,直到第51页的页面大小为100,这就产生了错误“在任何高页上检索一组记录时都需要分页cookie”。
这使我想到了几乎重复的问题域(如Dynamics CRM - How to get the second page of a fetchXml query beyond the 5000 elements? ),但“您不需要分页cookie”的说法似乎根本不正确,对于5k以上的结果,我无法做任何不产生该错误的事情。
现在,我正在对-the整个结果集进行分页-(这允许我从前面的结果获得PagingCookie传递到下一个页面请求),然后从该集合返回我想要的数据,但这非常慢。我通过动态更改分页循环中的查询使其更快,因此只有当当前数据位于请求的页面范围内时才返回列,该范围已使查询减少了大约30秒,但对于如此大的数据集仍然非常缓慢。
那么,有没有什么东西可以让我在不使用分页cookie的情况下获得这些高的结果呢?例如,这是一个QueryExpression限制吗?或者一种处理这个问题的更快的方法,而不是把所有的结果迭代到我想要的页面?
谢谢。
发布于 2019-11-05 18:05:22
不幸的是,在查询结果中没有“快速转发”到高页面的方法。
您必须按照现在的方式使用分页cookie。
如果您知道上一次查询中的最后一条和下一条记录,您可以尝试首先创建一个高页面cookie。
正如@Aron在他的回答中所建议的,唯一的改进可能来自于排序和/或过滤/分区数据(通过createdon等等)。
发布于 2019-07-02 12:09:36
筛选数据集以返回更少的页面可能是要调查的事情。或者,如果所需的页面更接近数据集的末尾,则反转排序顺序。
https://stackoverflow.com/questions/56832551
复制相似问题