我正在使用 Primefaces Datatable 组件,系统后端正在运行 Glassfish 和 Oracle 数据库。
执行大型搜索操作时,AppServer 上的负载变得过多。Appserver 总是加载完整的结果集,这是太多的负载。 我正在寻找通过从数据库中选择“页面”来优化 Appserver 负载的方法?
在 Primefaces 数据表中使用分页会导致只有一个页面被传输到客户端。这很好,但 Appserver 仍会加载完整的结果集。
我在想我也许可以:
- 首先对数据库进行计数(*),以查看总结果集的大小。
- 然后只对我的 Appserver SessionBean 的唯一标识符列表(代表完整选择)进行选择
- 然后选择一页“full resultset-data”返回给客户端。
然后客户端可以按下“下一页”按钮让 AppServer 从数据库中获取第二页。此获取必须使用“唯一标识符”列表(或者我可以使用“rownum”变量来指定完整选择的子集)。IE。在实践中,我最终会“手动”进行分页</p>
当用户按下分页器按钮时,我如何使用 Primefaces Datatable 组件并在我的 Appserver 代码中获得控制权?
当然欢迎任何替代的处理方式。