首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取查询记录总数的最快方法

获取查询记录总数的最快方法
EN

Stack Overflow用户
提问于 2016-06-28 09:59:19
回答 1查看 384关注 0票数 1

我目前正在OpenEdge中开发REST (使用新的面向对象的WebSpeed处理程序),由Kendo网格小部件使用。

我真正挣扎的一个领域是实现分页-- Kendo网格要求API为其提供总记录,以确定有多少页。我发现唯一推荐的方法是执行一个PRESELECT查询,然后使用NUM-RESULTS,如下所示:

代码语言:javascript
复制
CREATE QUERY hQuery.
hQuery:SET-BUFFERS(BUFFER sales_order:HANDLE).
hQuery:QUERY-PREPARE("PRESELECT EACH sales_order WHERE co_no = 1").
hQuery:QUERY-OPEN().
oJson:Add("total", hQuery:NUM-RESULTS).

可以预见,这是愚蠢的缓慢--对服务器的请求从每页72 is上升到500 is,使网格感到非常缓慢。这是在一个非常低的页面大小,太!

这里最明显的解决办法是:

  • 缓存记录的数量:我没有进行数据库更改的权限,它需要对遗留系统进行更新以保持同步,因此我觉得这会打开一罐蠕虫。
  • 异步获取记录数:,如果您不返回原始请求中的总数,Kendo网格只允许您通过同步请求获得它。,我无法想象这将为用户体验带来奇迹。

所以,我的问题是,是否有更快的方法来获取查询的记录总数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 19:06:53

不幸的是,这仍然是OE中的一个问题。

提到了缓存,但只有在没有应用筛选器的情况下,它才能工作,因为记录的总数取决于筛选条件。

要提高性能,唯一可以做的事是在预选中包括字段选项。

代码语言:javascript
复制
hQuery:QUERY-PREPARE("PRESELECT EACH sales_order FIELDS(table_field_here) WHERE co_no = 1").

到目前为止,这是您能做的最好的事情,至少是本文中推荐的:4GL.哪一种方法能最快地计算桌子上的记录?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38073024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档