我只是很想知道,報告服務在返回1MB數據時會在幾分鐘內生成報告。也許使用視圖和表格是正確的索引。 SSRS報告和服務器端生成。報告生成報告所需的最長時間
回答
可以接受多長時間?取決於它在做什麼,它運行多少,這樣的事情。如果它每天或兩次運行一次,30秒內的任何事情都可以。如果它每週運行一次或每月運行一次,這個數字可能會高出很多。
報告本身通常非常快,如果您看到一個掛斷,您可能需要檢查生成數據的查詢的執行時間。一個複雜的查詢可能需要很長時間,即使它只返回一點數據...
我發現,當使用BIRT和其他報告系統時,最好的改進往往是通過將大部分工作卸載到數據庫在後端。
換句話說,不要通過電線發送大量數據並在本地進行分類或分組。通過SQL orderby和groupby子句以及優化索引(除其他外),數據庫幾乎肯定會超越你。
這樣,您可以更快速地提取所需的數據並減少網絡流量。
報告生成時間由兩個部分組成: - 數據採集時間 - 渲染時間
因此對於數據的1 MB,有多少記錄(行),我們談論?報告有多少頁?每頁有多少個控件?報告是否使用圖表?這些是決定世代時間的因素。
對於大多數報告,數據採集時間是最重要的因素。您的報告永遠不會比原始數據採集運行得更快。因此,如果您使用的是SQL,報告生成速度不會超過運行查詢所需的時間。我看到很快就會返回超過1Mb數據的查詢。我也看到了返回很少數據的查詢,這些查詢運行了很長時間。
在渲染方面,可能會導致報告運行緩慢的一些事情。第一個是報告彙總。如果報告需要在開始渲染之前收到所有記錄,則其性能將受到影響。具體取決於報告工具。對於大型數據集(超過10,000條記錄),您可以通過在源(DB)處進行聚合來顯着改進渲染。另一個是圖表,通常涉及繁重的渲染開銷和聚合。
大多數報告系統允許您構建定時器或日誌記錄,以幫助您調整報告的性能。最好在報告中建立計時器,告訴你報告獲取數據花費的時間百分比,以及渲染花費的百分比。當你有這些信息時,你就會知道在哪裏集中精力。
如果您真的想要評估報告工具的性能,最好的方法是構建一個報告,以讀取平面文件或通過代碼生成數據。換句話說,消除數據庫的影響,並看看報表工具可以生成頁面的速度。
希望這會有所幫助。
正如幾個人所說,這樣的一般問題實在無法回答。不過,我寫了Turbo-charge Your Report Speed – General Rules & Guidelines(免責聲明 - 我是SSRS競爭對手Windward Reports的首席技術官)。我認爲這將幫助您尋找可以加快這一過程的方法。
並且,在3GHz工作站上,我們通常會看到關於具體問題的所有注意事項,我們通常會看到7-30頁/秒。請記住,這是Windward的數字,而不是SSRS。
- 1. 報告生成
- 2. 報告生成
- 3. 生成報告
- 4. 生成報告
- 5. Junit的報告不會生成報告
- 6. 代理TFS的生成時間報告
- 7. Surefire報告不生成報告
- 8. Birt報告 - 不生成空白報告
- 9. Checkstyle報告生成圖表報告
- 10. 報告觀衆花費很長的時間來加載報告
- 11. 生成很長的報告對於PHP
- 12. PDF報告生成
- 13. 生成knitr報告
- 14. 生成PDF報告
- 15. Java報告生成
- 16. 生成xslt報告
- 17. 生成TestNG報告
- 18. 報告生成期間多次使用報告組件?
- 19. 生成excel報告的最佳方式
- 20. 生成報告的最佳方式
- 21. Cognos報告 - 只有滿足條件時才生成報告
- 22. 如何緩存需要很長時間才能生成的報告或網頁?
- 23. Git中的報告生成
- 24. 生成HTML TestNG的報告
- 25. 報告生成器最大值與expr
- 26. 查詢報告很長時間'鎖定'
- 27. SQL報表生成器與空報告
- 28. 生成報告時phpexcel中的錯誤
- 29. 生成聲納報告5.2
- 30. 在C中生成報告#
這位將軍真的無法回答這個問題。它可以有很大的不同,取決於需要處理多少數據來生成這個1MB的報告,數據的索引如何等等。 – 2008-09-25 04:34:29