2008-11-19 41 views
2

我們在生產環境中遇到非常令人沮喪的問題。無法追蹤報表處理性能問題

我們有一個報告,有時會很快返回,其他時間根本不會返回。當問題發生時,報告將處理15分鐘左右,然後瀏覽器將顯示「無法顯示網頁」錯誤。這個問題通常會持續幾天,然後我們會得到幾天的非常快的處理,然後回到緩慢。當報告運行良好時,我們可以在大約10秒內返回超過14k條記錄。

我被我們的數據團隊告訴上已經發生在我們看到從慢切換到快時的SQL服務器一無所獲。沒有索引重建,統計recalcs等

底層報告查詢(存儲過程)總是快速運行。即使遇到問題,我也可以使用與報告使用相同的用戶連接到生產數據庫,並使用相同的參數運行存儲過程,並始終快速返回。我們已經檢查過阻塞,而且沒有發生。

該報告確實有很多參數。我見過有關「參數嗅探」的帖子,所以我創建了一個參數免費版本的報告,我仍然得到相同的結果。

這份報告沒有什麼複雜的。這是一張桌子。報告級別不進行分組或過濾。沒有子報表。該報告確實使用交互式排序。

該報告可以返回14k以上的記錄。數據總量大約爲2MB。但就像我之前所說的那樣,有些日子報告運行良好,甚至會在幾秒鐘內返回最高記錄數。

該報告使用共享數據源,該數據源也被許多其他未遇到此問題的報告使用。

在報告數據庫中,我們看到被添加到RunningJobs表對這些報告的請求的記錄,但我們沒有看到任何處理之後發生的。這就像報告服務器忘記它們一樣。

我們目前的行或思想是報表服務器運行不正常,因爲在RunningJobs這些條目只是坐在那裏,不會被處理。

有誰知道爲什麼一份工作可能坐在RunningJobs表中?如果這些作業正在運行,我們應該在Report Server日誌文件中看到一些正確的內容?還有什麼我們應該測試?

我們的報表服務器版本號是9.00.3050.00。我們通過Report Viewer網頁控制訪問。

+0

是你的SQL盒和IIS盒分開? – gbn 2008-11-27 19:59:25

回答

1

也許嘗試一個較小的數據集,看看它是否會改變它。

任一服務器上的任何CPU spikage?

報告的運行時間是否與您所遇到的情況匹配? ReportServer中的ExecutionLog表應該顯示這個。

聽起來很煩人 - 我同情,希望我有更好的想法。

0

我沒有用的ReportServer(到目前爲止),但我已經看到了SQL服務器類似的問題,引起只是錯誤的網絡交換機(或其他網絡硬件)。一些數據包丟失,應用程序無限期地等待服務器 - 而且服務器上完全沒有活動。

1

您是否嘗試過使用SQL Server Profiler分析請求?使用它可以確定請求是否在SQL Server中完成,並且問題在於生成報告或者查詢實際上沒有完成。

如果查詢在緩慢時尚未完成,則可以捕獲查詢計劃並將其與您在沒有問題時生成的計劃進行比較。

0

我能夠解決在切換數據庫服務器並更新了web.config中的連接字符串後發生的類似問題。我的查詢運行時間約爲5-6秒,但是報告花費的時間太長,以至於我的網頁超時(我正在使用本地報告;我沒有報告服務器。)

我有一個懷疑,我的DAL中的DataTable仍在繼續尋找舊服務器,然後纔開始新服務器。我想這個想法可能會失敗,但它的解決方案仍然有效!

我通過在右鍵菜單中選擇「配置」來刷新我的.xsd文件中的所有數據表,並保留所有默認值,單擊下一步直到我必須單擊完成。在瀏覽每個DataTable之後,我重建了網站,現在它的運行速度與我的查詢一樣快。

我希望這有助於!

0

確認您沒有任何帶有外部鏈接的報告中的圖像。如果這樣做,圖像主機可能會花費很長時間才能讓圖像成爲服務器。報告服務器丟失了出站Internet訪問,因此報告服務器在處理期間無法檢索到外部映像,這種情況非常類似。不幸的是,SRRS不僅檢查,得到一個http錯誤,並且返回,它等待並等待。我supsect(但未驗證)它試圖爲報告的每個頁面檢索圖像。我這樣說是因爲報告長度與問題存在時舊執行時間與執行時間之間的差異之間的相關性。報告的每個頁面似乎都有5到12秒的延遲。

如果您想了解我是如何解決我的問題看我的文章的詳細信息:

SQL Server Reporting Services - Fast TimeDataRetrieval - Long TimeProcessing

親切的問候,

伯尼