報表伺服器可以快取已處理報表的複本,並在用戶開啟報表時傳回該複本。 對使用者,唯一可用來指出報表為快取複本的辨識項是報表執行的日期和時間。 如果日期或時間不是最新的,而且報表不是快照集,則報表是從快取擷取而來。
如果報表很大或經常存取,快取可以縮短擷取報表所需的時間。 如果伺服器重新啟動,當報表伺服器 Web 服務恢復上線時,所有快取的實例都會恢復。
快取是效能增強技術。 快取的內容是揮發性的,而且可以在新增、取代或移除報表時變更。 如果您需要更可預測的快取策略,您應該建立報表快照。 如需詳細資訊,請參閱 設定報表處理屬性。
備註
Reporting Services 會將暫存盤儲存在資料庫中,以支援用戶會話和報表處理。 這些檔案會快取供內部使用,並在單一瀏覽器會話期間支援一致的檢視體驗。 如需如何快取內部使用暫存盤的詳細資訊,請參閱報表伺服器資料庫(SSRS 原生模式)。
快取實例
報表的暫存實例是基於報表的中間格式。 報表伺服器通常會根據報表名稱快取報表的一個實例。 不過,如果報表可以包含以查詢參數為基礎的不同數據,則可以隨時快取多個版本的報表。 例如,假設您有參數化報表,其採用區域程式代碼做為參數值。 如果四個不同的使用者指定四個唯一區域代碼,則會建立四個快取複本。
使用唯一區域代碼執行報表的第一個使用者,會建立包含該區域數據的快取報表。 使用相同區域代碼要求報表的後續使用者會取得快取的複本。
並非所有報表都可以快取。 如果報表包含使用者相依的數據、提示使用者輸入認證或使用 Windows 驗證,則無法快取。
刷新快取
當使用者在先前快取的複本過期之後選取報表時,會以較新版本取代快取的報表。 設定為以快取實例執行的報告會根據到期設定,定期從快取中移除。 根據數據的時效性需求,您可以將報表的到期時間設定為幾分鐘後到期,或設置於特定的排定時間到期。 除非您使用SOAP API,否則您無法直接從快取中刪除報表。
若要設定快取過期,您可以使用共用排程或針對報表的專用排程。 如果您使用共用排程,且後續暫停,則當排程無法運作時,快取不會過期。 如果後續刪除共用排程,排程設定的複本會儲存為報表特定的排程。
如果排程到期或排程引擎在快取到期日無法使用,報表伺服器會執行實時報表,直到可以繼續排程作業為止(藉由擴充排程或啟動排程服務)。
預先載入快取
若要改善伺服器效能,您可以預先載入快取。 您可以透過兩種方式使用參數化報表實例的集合來預先載入快取:
建立快取重新整理計劃。 當您建立重新整理計劃時,您可以指定單一報表的排程或指定共用排程。
建立使用 Null 傳遞供應商的以數據為導向的訂閱。 當您在訂閱中指定「Null 交付提供者」為傳遞方式時,報表伺服器會將報表伺服器資料庫設定為傳遞目的地,並使用一種名為「Null 轉譯擴充套件」的專用轉譯擴充套件。 與其他傳遞擴充功能相反,Null 傳遞提供者沒有可以由訂閱定義設置的傳遞設定。
如果您想要快取參數化報表的多個實例,其中使用不同的參數值來產生不同的報表實例,則快取報表特別有用。 請注意,您只能在報表上指定以查詢為基礎的參數。
當您指定排程或建立資料驅動訂閱時,您可以設定報表傳送到快取的頻率。 為了讓新復本傳遞至快取,舊復本必須已過期。 因此,報表的執行屬性必須設定為包含快取到期設定。 到期設定必須與您定義的訂用帳戶排程一致。 例如,如果您建立每晚執行的訂閱,快取應該在訂閱執行的時間之前每晚到期。 如果 Execution 屬性不包含到期時間,則會忽略較新的傳遞。 如需快取重新整理計劃的詳細資訊,請參閱 排程。 如需設定屬性的詳細資訊,請參閱 設定報表處理屬性。 如需使用數據驅動訂閱的詳細資訊,請參閱 Data-Driven 訂閱。
造成快取到期的條件
快取的報表因回應下列事件而失效:修改報表定義、修改報表參數、數據源認證變更或報表執行選項變更。 如果您刪除儲存在快取中的報表,也會刪除快取的版本。
如果因任何原因而無法從快取實例轉譯報表(例如,如果使用者指定的參數值與用來產生快取報表的參數值不同),報表伺服器會重新執行報表。
另請參閱
設定處理選項 (SharePoint 整合模式中的 Reporting Services)
設定報表處理屬性
Reporting Services 概念 (SSRS)
預先載入快取 (報表管理員)
排程
快取共享資料集(SSRS)
快取重新整理選項 (報表管理員)