2011-08-01 70 views
-1

我正在使用Microsoft SQL報告報告,但面臨的問題,因爲我有大量的數據,從巨大的我的意思是100000到1000000記錄。當我檢索記錄時,它連接了8個表格,所以我想知道微軟的報告對於這些數據量是否可行,因爲我已經閱讀過文章,它會降低性能,或者是否有其他任何選項,如Crystal Reports或任何其他組件?微軟的報告服務報告花費了太多的時間與龐大的數據

我的查詢是在一個存儲過程中,我把它填充到一個DataSet.xsd中,然後在我的頁面上使用ObjectDataSource將它與報表綁定。 另一件事是我必須使用圖表組件以及報告。 Im使用Sql server 2008 R2標準版與Asp.Net 4應用程序。

+0

查詢需要多長時間?另外,是否有人真的要讀取所有1000000行?如果沒有,那麼你應該過濾行以接近需要的。 –

+0

我等了將近5分鐘,它不生成報告,是的用戶可以選擇一個標準來查看所有記錄。 –

+0

我問過查詢需要多長時間,而不是報告需要多長時間。也許這只是一個需要很長時間才能運行的查詢。 –

回答

0

我真的懷疑你的用戶正在查看100萬甚至10萬條記錄 - 而且你還提到了圖表控件。如果您需要爲他們提供靈活的聚合,請考慮將SQL Server Analysis Services添加到報告服務器,並從您的在線數據構建一個多維數據集。一個Excel插件可以用來處理數字 - 它非常漂亮。

也許你需要構建更多的報告和過程來做特定的過濾或聚合。用這麼多行創建報告會導致問題。

如果你能解釋你的用戶用這些數據做什麼,也許可以有更好的答案。

+0

我同意你的意見。分析服務可以幫助LOT成爲數據源 – niktrs

0

您可以運行下面的查詢,找出:

SELECT Name, TimeDataRetrieval,TimeProcessing,TimeRendering 
    , TimeDataRetrieval+TimeProcessing+TimeRendering AS TotalTime,Format,Parameters,username,TimeStart 
FROM dbo.ExecutionLog L WITH (NOLOCK) 
    INNER JOIN dbo.Catalog R WITH (NOLOCK) ON L.ReportID = R.ItemID 
WHERE Name='' -- update parameters for report name 
AND Format>'' 
ORDER BY Name 

TimeDataRetrieval是查詢需要多長時間來執行。

嘗試從同一個客戶端上的Management Studio運行相同的查詢,並比較兩者的執行時間。