如何防止Crystal Web服务器在每个页面上重新获取数据

时间:2020-03-06 14:57:46  来源:igfitidea点击:

我们正在通过其Web服务器使用Crystal 11. 当我们运行报表时,它将执行Sql查询并在Crystal Web reportviewer中显示报表的第一页。

当我们单击下一页按钮时,它将重新运行Sql查询并显示下一页。

我们如何使数据重新查询停止?

我们也有多个人同时运行同一份报告(毕竟这是一台Web服务器),我们不想在同一份报告的不同实例之间缓存数据,我们只想在每份报告中缓存数据报告的实例。

解决方案

分页的原因不仅是表示方面的问题。使用分页,最重要的一个优点是延迟加载数据,因此从理论上讲,根据给定的过滤器,仅加载需要的内容。

试想一下,如果数据库中有数百万条记录,然后加载了所有记录。首先,它会变得很慢,其次,我们会获取很多我们真正不需要的东西。如今,所有网络模型都基于延迟加载而不是批量加载。考虑一下Google App Engine:在给定的交易中,我们无法从Google数据存储中检索到1000条以上的记录,并且我们知道,如果仅尝试显示它们,浏览器就会死机。

我会问一个问题,我们是否遇到任何性能问题?

如果是这样,我们可能会认为我们会做得更好,但事实并非如此,因为我们会减少服务器上的负载,但是每个查询都会消耗更多的资源。
如果没有,我的建议是不要管它! :)