我正在使用從Oracle數據庫中選擇數據的SQL Server Reporting Services創建報告。報告正在工作,但需要很長時間才能生成(〜75秒)。我已經在我的報告非常簡單的查詢如下:帶有Oracle數據庫性能問題的SSRS報告
SELECT
(SELECT COUNT(*)
FROM CALL
WHERE trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS total_calls,
(SELECT COUNT(*)
FROM CALL
WHERE DISCONNECT = 'T'
AND trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS transfered_calls,
(SELECT COUNT(*)
FROM CALL
WHERE DISCONNECT = 'H'
AND trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS hangups
FROM DUAL
現在,我可以用sqlplus *在Oracle中執行這個查詢(與填充過程的日期),並在8秒執行。當我嘗試在SSRS報告中執行相同的查詢時,需要75秒的時間才能生成。我擔心的是,我需要添加更多的查詢來完成報告,如果生成報告的基本版本需要很長時間,那麼完成的報告將無法工作。我該如何提高報告的表現?有任何想法嗎?
在此先感謝您的幫助。
+1我會先用這個解決方案。這很簡單,你應該如何設計你的查詢。如果您仍然遇到性能問題,那麼請開始查看其他系統問題(如索引),並可能創建視圖或存儲特效。 – northpole 2012-02-24 19:16:03
+1如果表已經有start_time和end_time上的索引,那麼查詢應該能夠使用它,如果where子句修改爲'where start_time> =:Begin_Date並且結束時間
2012-02-25 08:09:15