2012-04-27 154 views
0

永遠需要我注意到,當我運行一個包含什麼,但執行時間欄的一份報告,該報告花費很長的時間加載每當我有從SQL大的嵌入式數據集。爲什麼是這樣?該報告甚至沒有查找數據集中的任何數據,那麼它在做什麼?加載時間顯然與數據集中的數據量成正比。有沒有更好的方法來創建數據集? SQL Report Builder看起來很不穩定,因爲我的一些數據集包含數百萬條記錄。SQL報表生成器與空報告

+0

爲什麼你有數據集那裏,如果你不使用它? – Lamak 2012-04-27 19:52:09

+0

我剛開始建設的報告,所以我添加數據集,我是計劃使用。當它只是帶有標題和執行時間字段的默認報告時,我運行了它。當我看到它需要多長時間時,我很好奇。 – 2012-05-03 12:39:11

回答

3

報告生成查詢涉及三個階段:

  • 數據檢索
  • 處理
  • 渲染

這些階段順序運行,所以在數據檢索階段Reporting Services不知道如何將數據會被使用報告,因此它將執行報告中所有數據集的查詢。處理階段然後獲取數據集查詢的結果並將報表結構(如表和分組)應用於數據。

這就是爲什麼你的報告被執行,即使該報告只包含了執行時間字段中的數據集查詢,並且也是爲什麼以確保數據集只返回報表所需的數據是很重要的。最小化數據檢索的數量對於良好的報表性能非常重要。

+0

哎。這將做到這一點。 – 2012-05-03 12:44:21

0

你確定你沒有在報表上的任何表矩陣? Tablix的有一個數據集屬性,如果您運行與該屬性設置爲dataSet1例如報告,SSRS將執行對數據集1

+0

這只是帶有標題和執行時間字段的默認報告。除此之外,它完全是空的。 – 2012-05-03 12:39:53