报告生成报告所需的最长时间

时间:2008-09-25 04:31:55

标签: reporting-services reporting ssrs-2008-r2

我很想知道报告服务在返回1MB数据时生成报告需要多长时间(以分钟为单位)。也许使用视图和表是正确的索引。 SSRS报告和服务器端生成。

5 个答案:

答案 0 :(得分:4)

报告生成时间有两个组成部分:   - 数据采集时间   - 渲染时间

那么对于1 Mb的数据,我们说的是多少条记录(行)?报告会有多少页?每页有多少控件?报告是否使用图表?这些是决定发电时间的因素。

对于大多数报告,数据采集时间是最重要的因素。您的报告永远不会比原始数据采集更快地运行。因此,如果您使用SQL,则报告生成的速度不会超过运行查询所需的时间。我看到查询返回的速度远远超过1Mb的数据。我还看到了很少返回很少数据的查询。

在渲染方面,有一些事情会导致报告运行缓慢。第一个是报告聚合。如果报表需要在开始渲染之前接收所有记录,那么其性能将受到影响。特别是,取决于报告工具。对于大型数据集(超过10,000条记录),您可以通过在源(DB)上进行聚合来显着改进渲染。另一种是图表,通常涉及大量的渲染开销和聚合。

大多数报告系统允许您构建定时器或日志记录,以帮助您调整报告的性能。最好在报告中构建计时器,告诉您报告获取数据所花费的时间百分比,以及花费在渲染上的百分比。当你掌握了这些信息时,你就会知道在哪里集中精力。

如果您真的想要评估报告工具的性能,最好的方法是构建一个报告,该报告可以读取平面文件或通过代码生成数据。换句话说,消除数据库的影响,并查看报告工具生成页面的速度。

希望这会有所帮助。

答案 1 :(得分:1)

可以接受多长时间?取决于它正在做什么,它运行了多少,这样的事情。如果每天或每两天运行一次,那么30秒以下的任何东西都可以。如果它每周运行一次或每月运行一次,那么这个数字可能要高得多。

答案 2 :(得分:1)

报告本身通常非常快,如果您看到挂断,您可能需要检查生成数据的查询的执行时间。复杂的查询可能需要很长时间,即使它只返回一些数据......

答案 3 :(得分:0)

我发现,在使用BIRT和其他报告系统时,最好的改进往往是将大部分工作卸载到后端的数据库。

换句话说,不要通过网络发送大量数据并在本地对其进行排序或分组。数据库几乎可以肯定会超越你的SQL orderby和groupby子句以及优化索引(等等)。

这样,您可以更快地提取所需数据并减少网络流量。

答案 4 :(得分:0)

正如几位已经说过的那样,这样的一般性问题实在无法回答。但是,我写了Turbo-charge Your Report Speed – General Rules & Guidelines(免责声明 - 我是Windward Reports的首席技术官,SSRS的竞争对手)。我认为这将有助于您寻找可以采取的措施来加快这一进程。

关于具体细节的所有注意事项很重要,在3GHz工作站上我们通常会看到7-30页/秒。请记住,这是Windward的数字,而不是SSRS。