2008-09-25 74 views
0

我只是很想知道,報告服務在返回1MB數據時會在幾分鐘內生成報告。也許使用視圖和表格是正確的索引。 SSRS報告和服務器端生成。報告生成報告所需的最長時間

+2

這位將軍真的無法回答這個問題。它可以有很大的不同,取決於需要處理多少數據來生成這個1MB的報告,數據的索引如何等等。 – 2008-09-25 04:34:29

回答

1

可以接受多長時間?取決於它在做什麼,它運行多少,這樣的事情。如果它每天或兩次運行一次,30秒內的任何事情都可以。如果它每週運行一次或每月運行一次,這個數字可能會高出很多。

1

報告本身通常非常快,如果您看到一個掛斷,您可能需要檢查生成數據的查詢的執行時間。一個複雜的查詢可能需要很長時間,即使它只返回一點數據...

0

我發現,當使用BIRT和其他報告系統時,最好的改進往往是通過將大部分工作卸載到數據庫在後端。

換句話說,不要通過電線發送大量數據並在本地進行分類或分組。通過SQL orderby和groupby子句以及優化索引(除其他外),數據庫幾乎肯定會超越你。

這樣,您可以更快速地提取所需的數據並減少網絡流量。

4

報告生成時間由兩個部分組成: - 數據採集時間 - 渲染時間

因此對於數據的1 MB,有多少記錄(行),我們談論?報告有多少頁?每頁有多少個控件?報告是否使用圖表?這些是決定世代時間的因素。

對於大多數報告,數據採集時間是最重要的因素。您的報告永遠不會比原始數據採集運行得更快。因此,如果您使用的是SQL,報告生成速度不會超過運行查詢所需的時間。我看到很快就會返回超過1Mb數據的查詢。我也看到了返回很少數據的查詢,這些查詢運行了很長時間。

在渲染方面,可能會導致報告運行緩慢的一些事情。第一個是報告彙總。如果報告需要在開始渲染之前收到所有記錄,則其性能將受到影響。具體取決於報告工具。對於大型數據集(超過10,000條記錄),您可以通過在源(DB)處進行聚合來顯着改進渲染。另一個是圖表,通常涉及繁重的渲染開銷和聚合。

大多數報告系統允許您構建定時器或日誌記錄,以幫助您調整報告的性能。最好在報告中建立計時器,告訴你報告獲取數據花費的時間百分比,以及渲染花費的百分比。當你有這些信息時,你就會知道在哪裏集中精力。

如果您真的想要評估報告工具的性能,最好的方法是構建一個報告,以讀取平面文件或通過代碼生成數據。換句話說,消除數據庫的影響,並看看報表工具可以生成頁面的速度。

希望這會有所幫助。

0

正如幾個人所說,這樣的一般問題實在無法回答。不過,我寫了Turbo-charge Your Report Speed – General Rules & Guidelines(免責聲明 - 我是SSRS競爭對手Windward Reports的首席技術官)。我認爲這將幫助您尋找可以加快這一過程的方法。

並且,在3GHz工作站上,我們通常會看到關於具體問題的所有注意事項,我們通常會看到7-30頁/秒。請記住,這是Windward的數字,而不是SSRS。