2014年2月24日 星期一

[SQL Server 2008R2][SSRS] 報表執行模式 - 快照集設定

報表的執行方式設定為「從報表執行快照集轉譯此報表」,在使用者執行這份報表前,報表伺服器便已經將這份報表處理完成,並將此份報表要顯示的資料「預先」儲存在資料庫中,這樣的報表稱為「快照集」。與快取報表最大的差異在於,快取報表儲存在暫存資料庫 ( ReportServerTempDB ) 中,而快照集儲存在報表資料庫 ( ReportServer ) 中。
這項功能對於需要保存「特定時間點」報表而言,例如:財務月報、銷售季報等,可說是非常實用的。報表內容不會隨著查詢時間點,以及來源資料的異動而有不一致,為了達到這樣的效果,可以利用排程在該時點產生快照集,日後使用者則直接利用快照集轉譯報表。

「快照集」必須以排程的方式來被啟動,「快照集」所建立的中繼報表是「真正的被儲存」在報表伺服器資料庫 ( ReportServer 的 SnapshotData 資料表 ),而不像「快取報表」的中繼報表只是被「暫存」。
快照集也必須先將資料來源設為「安全地儲存在報表伺服器中的認證」。再勾選「從執行快照集轉譯此報表」中的「使用下列排程建立報表執行快照集」,以設定報表特定排程或者是使用共用排程。

當點選「套用」時,可能會發生「遺漏預設報表參數值」的錯誤訊息 (如果此報表是需要輸入參數 )。

快照集與快取報表最大的不同點在於,快取報表會根據不同的參數輸入值去儲存個別的中繼報表副本,但是,快照集則是不論參數的組合為何都只儲存一份副本,所以要產生快照集之前,必須為此報表設定「參數預設值」

若要設定報表預設值,除了在報表設計階段中於報表設計師中設定。也可以直接點選報表「屬性」頁籤的「參數」分頁,勾選「有預設值」並於「預設值」欄位指定報表參數預設值後即可按下「套用」。
若在報表設計階段中使用函數設定預設值,也可以在報表「屬性」頁籤的「參數」分頁覆寫預設值


確認參數預設值後,即可正常設定快照集。快照集無法根據不同的參數儲存不同的快照集,如果要做到這種功能,需將報表設計成不同的連結報表,再為個別連結報表設定快照集。

沒有留言: