显示报告的最佳做法

时间:2011-11-02 14:39:41

标签: database postgresql reporting report

我目前有一个客户端 - 服务器应用程序。客户端需要能够生成报告。这些报告可以有数百万条记录。将数据传送到客户端的最佳方法是什么?一次发送所有百万条记录效率不高。假设我只想一次显示20个并翻阅所有结果。每次用户点击下一页时,我都会让服务器执行查询吗?或者我应该让服务器获取整个结果集,然后将部分内容发送到客户端?

2 个答案:

答案 0 :(得分:1)

使用光标 - 它非常适合这些用途。

注意 - 包含百万行的报告不是设计良好的报告。 Nobady可以处理它。但这是分析的问题。

http://www.commandprompt.com/ppbook/x15040

答案 1 :(得分:0)

我在sql查询中使用Limit来设置获取的记录范围。但查询必须来自客户端,查询必须通过范围。

如果您使用Dotnet + npgsql连接器

,则取决于脚本
  • 我会在表格
  • 中的组合框中生成一个Pagenumber
  • 然后将页面编号乘以行*(pagenum-1)(第2页为20 * 1)以获得启动rownum
  • 以sql的形式传递给数据库
  • 检索行并在datagridview中显示

虽然,我可能只是补充说,搜索一百万条记录Page_by_page并不是智慧。我希望有一些过滤器可以将搜索范围缩小到几页。因为研究表明超出第10页的观点呈指数下降。