我有一個呈現從存儲過程返回的數據的報告。使用事件探查器,我可以從報告服務中調用存儲過程。當它基於的存儲過程在幾秒內返回結果時,爲什麼SSRS報告會超時?
該報告失敗,說明報告超時,但我可以從SSMS執行存儲過程,並在五到六秒內將數據返回。
請注意,在示例測試運行中,只有兩行返回到報表以進行呈現,但在存儲過程中,它可能已經處理了數千甚至數百萬條記錄,以便將傳回給報告服務的結果進行比較。
我知道存儲過程可以更優化,但我不明白爲什麼SSRS會超時當執行似乎只需要幾秒鐘,從SSMS執行。
此外還出現了另一個問題。如果我重新創建存儲過程,報告將再次呈現完美呈現。這很好,除非在很短的時間內,報告再次開始超時。
超時的返回似乎與新數據被添加到報表運行的主表中有關。在我測試的例子中,插入了一百條新記錄就足以搞砸報告。
我更正確地想象它不是報告是根本原因。這是從SSRS執行時導致超時的存儲過程。
一旦它再次超時,我最好的解決方法是到目前爲止重新創建存儲過程。這似乎不是一個理想的解決方案。
這個問題似乎也只在我們的生產環境中發生。我們的測試和開發平臺似乎沒有出現同樣的問題。雖然開發和測試沒有與生產相同的記錄量。