2014年1月7日 星期二

[SQL Server 2008R2][SSRS] 報表執行模式 - 即時報表設定

部署到報表伺服器中的所有報表,預設都會被設定為「永遠以最新的資料轉譯此報表」並且「不要快取此報表的暫存副本」,此設定值會儲存於各報表「屬性」頁籤中的「處理項目」分頁。


雖然設定「永遠以最近的資料轉譯此報表」以及「不要快取此報表的暫存副本」,並不保證使用者看到的報表內容是最新、最即時的。因 Web 服務,以 HTTP 通訊協定來說,會有工作階段的快取,不過這個問題並不嚴重,因工作階段通常只有數分鐘,因此只要工作階段快取失效,使用者還是可以取得最新資料。

以商業智慧的機制來說,大多數都是每日批次,除非是即時報表,否則應不太可能在工作階段的過程中發生資料改變的情況,但是,真有工作階段造成資料非即時的問題,此時只要點選報表工具列上的「重新整理」圖示,就可以要求報表服務為此工作階段產生新的中繼報表暫存。 ( 不是瀏覽器上的「重新整理」圖示 )


「快取報表」可以利用暫存快取的方式,解決重覆系統資源浪費的問題。另外,週期快報表同樣可以利用排程機制事先處理報表,並產生報表快取,以減少報表瀏覽者不必要的等待。
「快取報表」與「工作階段快取」的機制很像,不同的地方在於,快取報表的中繼報表可以提供給多位使用者重複檢視,而工作階段快取的中繼資料只能提供同一使用者重複檢視。

快取報表可以利用兩種方式產生,一種是當第一個使用者閱讀此報表時,系統才產生報表快取;另一種方式則是利用排程來產生報表快取。如果採用第一種模式,需要指定快取生命週期長度;若使用第二種模式,則是下一次排程執行時則會覆寫舊的快取。


如果勾選「快取報表的暫存副本。報表副本會在下列分鐘數後過期」,快取的生命週期就是後方文字方塊所填寫的分鐘數。不過,設定後點選「套用」,可能會出現下列畫面 ( 沒有儲存用來執行此報表的認證 )。


因為快取報表以及所有 SSRS 排程工作僅支援預先儲存的認證資訊,也就是必須要將帳號密碼先儲存於報表伺服器中。
點選資料來源,勾選「安全地儲存在報表伺服器中的認證」,並輸入帳號密碼。為了確保安全性,建議是在資料來源設定一組專門給 SSRS 的存取帳號,同時僅授與報表相關資料的唯讀權限。修改後才能正常設定快取報表。



若勾選「快取報表的暫存副本。報表副本會在下列排程過期」,那麼快取報表是根據排程產生,而快取的生命週期是一直到下一次排程發生為止。這種設定方式比較適用於需要固定時間更新資訊的報表
排程快取支援兩種排程模式,一種是報表特定排程,也就是為這支報表快取設定一個獨立的排程;第二種模式是使用共用排程,將此快取作業附掛於已存在的共用排程中。不管哪一種排程,都必須先確認 SQL Server Agent 已開啟。報表特定排程雖然便利,但可能會造成過多排程而難以管理。採用共用排程,對於報表伺服器管理員比較容易監控排程的執行狀況

若要產生報表特定排程,只要點選選項後方的「設定」,即可進入詳細設定畫面,自行勾選排程頻率以產生所需要的工作排程。



使用共用排程者,只需要利用下拉式選單即可選取系統上已經排定的共用排程工作。共用排程的管理是在「站台管理」裡的「排程」來進行管理



SQL Server Agent 沒有啟動



完成設定後如下圖

回到報表的「處理選項」分頁,共用排程的下拉選單,即會出現可供選擇的排程。

在 SSRS 2008 的訂閱模式中有一種是「Null 提供者」,表示是透過系統訂閱機制,主動的觸發產生快取。在 SSRS 2008 R2 後,這項功能名稱變更為「快取重新整理計畫」,設計者僅需要切換至「快取重新整理選項」即可新增。


在快取重新整理計畫中,可以透過特定排程或是共用排程來更新快取。



沒有留言: