2015-09-01 26 views
0

背景:報告服務2014 - 導航欄顯示0 0

我們最近遷移到SSRS 2014;我們的源數據庫是SQL Server 2008 R2。我們在報告中遇到了一些性能問題,它只會停止響應,並在渲染報告30分鐘後最終超時。查看報告服務器上的執行日誌表明數據檢索時間較短,而報告渲染時間較長。我們的DBA在解決這個問題一個月後發現的解決方案是設置READ_COMMITTED_SNAPSHOT ON。

這似乎已經清除了單個報告中非常奇怪的性能問題。當用戶嘗試生成該報表時,該報表似乎陷入僵局。死鎖看起來是在臨時報告服務器數據庫上,僅在將報告返回到瀏覽器(IE或Chrome)時發生,並且每次生成報告時都不會發生,但可能在多個用戶試圖生成在相同的時間範圍內報告。該報告有3個級別的分組,併爲輸入的參數返回可變數量的行。

此設置(READ_COMMITTED_SNAPSHOT)現在似乎導致了第二個問題:在報告的導航欄中,用戶可以通過報告中的頁面進行導航,最初在顯示「下一頁」按鈕。當用戶單擊「下一頁」按鈕時,瀏覽器會執行回傳(就像您在瀏覽下一頁時那樣)並刷新第一頁的屏幕。現在,導航欄顯示X中的一個。

我們所有的SSRS服務器都收到了READ_COMMITTED_SNAPSHOT,因此我要求DBA將我的DEV服務器更新爲OFF。完成後,我重新生成了所有報告(大約一打),每個報告最初都顯示了X頁中的1個,正如我所預料的那樣。現在,我質疑是否將該屬性設置爲ON是修復報告的正確方法。

我想過是否創建報表快照是一個很好的解決方案,不幸的是,我不認爲這是因爲我們有用戶有不同的參數選擇。

問題:

  1. 有沒有更好的辦法,我們應該已經解決了報告的性能問題上面,而不是設置READ_COMMITTED_SNAPSHOT什麼?
  2. 如果READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION都需要都設置爲true/on,
  3. 有沒有人遇到過與SSRS導航欄相關的問題,他們如何解決這個問題?

更新:

我們最終不得不回滾的READ_COMMITTED_SNAPSHOT設置,因爲它發生:一個完全不同的錯誤。上面提到的問題似乎也清楚了,連續兩個月沒有報告問題。不幸的是,沒有人知道造成這個問題的原因是什麼,或者可能已經解決了這個問題(可能是硬件改變)。

回答

0

我假設你在報告的源數據庫上更改了這些設置,而不是SSRS服務器本身(除非它們是相同的服務器)。更改READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION的設置可能會對系統產生廣泛的影響,因此應謹慎操作。有關更改這些設置的潛在問題,請參閱https://dba.stackexchange.com/questions/5014/what-risks-are-there-if-we-enable-read-committed-snapshot-in-sql-server(也是對第二個問題的回答)。

對我來說,這聽起來像問題是在您的報告查詢或查詢,所以更改這些數據庫級別設置來解決一個報告中的性能問題可能是矯枉過正。在更改行版本設置之前,我首先會分析報告查詢並對其進行調整(並且可能會將缺少的統計信息或索引添加到源數據庫)。

至於導航欄問題,可能對行版本控制所做的更改意味着SSRS無法計算最初加載頁面時可用的頁數。但我不知道爲什麼會發生這種情況。

+0

我們將READ_COMMITTED_SNAPSHOT ON添加到SSRS臨時數據庫;而不是報告的源數據庫;因爲執行日誌表明DataRetrieval時間較短,而ReportRendering時間較長。 當我們在開發服務器上設置READ_COMMITTED_SNAPSHOT OFF以進行測試時,導航欄問題似乎已被清除。但是,我們無法在產前環境中測試報告的性能,因爲併發用戶在預產期時不可用。 – Russ

+0

Reporting Services文檔明確指出,Report Server和Report Server Temp DB數據庫的READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION應設置爲OFF。將其更改爲ON可讓您處於Reporting Services不受支持的配置狀態:https://msdn.microsoft.com/en-us/library/ms159093%28v=sql.105%29.aspx – Nathan

+0

Nathan,謝謝爲參考。我會審查它們,並將它們轉發到數據庫人員身上。報告渲染看起來像是執行日誌中的瓶頸會是什麼原因?該查詢在ssms中運行(或執行存儲過程)時會在可接受的時間(〜<10s)內返回;即使在報告性能問題的時間內執行也是如此。 – Russ