移除過時的應用程式資料
Microsoft SQL Server Notification Services 應用程式資料庫中的大量資料對效能的妨礙可分兩方面來說明。第一,大型資料表會降低查詢效能。第二,資料檔變大時,SQL Server 可能會自動增加檔案大小,這會耗費系統資源。
Notification Services 使用名為 Vacuuming 的處理,從應用程式資料庫移除已經過時的資料。Vacuuming 是根據應用程式定義的排程,針對每個應用程式自動執行的處理程序。
定義應用程式時,請指定應用程式的資料保留時間和 Vacuuming 排程。資料保留時間是可以移除事件和通知資料的最小經過時間。例如,保留時間設為一天是指定資料必須存在最少一天,才可以將之移除。Vacuuming 排程指定一或多個 Vacuuming 起始時間和持續時間。如需詳細資訊,請參閱<設定資料移除>。
資料是按個別配量來移除,這表示一個配量期間處理的所有事件和通知會當作一個單位來移除。
應用程式執行時,請確認 Vacuuming 處理是按排程執行。如果 Vacuuming 正在執行但應用程式需要不同的 Vacuuming 組態,您可以編輯應用程式定義並更新應用程式以套用變更,來修改移除。必要時可以手動執行移除 (Vacuuming)。
確認正在執行 Vacuuming
對於每一個應用程式,您應該定期檢查以確定 Vacuuming 是按排程執行。如果應用程式資料庫中累積大量資料,則應用程式效能可能會下降,且資料庫可能會用完磁碟空間。Notification Services 提供用於監視應用程式的預存程序及效能計數器,可以用來監視 Vacuuming。
- NSSnapshotApplications 預存程序會傳回 Vacuuming 處理上次執行時間,以及移除的事件與通知資料列數的相關資料。
- NS$instanceName: Vacuumer 效能物件提供有關 Vacuumer 處理的效能計數器。監視這個物件提供的計數器,以判斷 Vacuumer 元件是否逾時,並判斷已移除 (Vacuum) 或準備移除 (Vacuum) 的配量數目。
僅當已傳遞通知或通知沒有其他重試時,Vacuuming 才會移除通知。僅當已處理事件時,才會移除事件。僅當已移除與配量相關的通知和事件時,Vacuuming 才會移除配量。如果仍未移除您預期要移除的資料,可能有一份相依資料無法移除。
修改 Vacuuming 排程
若要調整 Notification Services 應用程式的 Vacuuming 排程,您必須編輯應用程式定義然後更新應用程式以套用變更至應用程式資料庫。如需有關定義 Vacuuming 排程的詳細資訊,請參閱<設定資料移除>。
重要事項: |
---|
若要修改 Vacuuming 排程,請設定排程,使 Vacuuming 在系統活動較少時執行。執行 Vacummer 時,Vacuuming 會耗用系統資源,可能會使應用程式效能變低。 |
手動執行 Vacuuming
一般來說,最佳作法是讓 Vacuumer 按排程執行。如果 Vacuuming 會拖慢系統效能或未移除足夠的資料,請變更應用程式定義中的排程,然後更新應用程式。僅當您判定移除未按排程執行或由於空間或效能的原因需要移除資料時,才手動執行 Vacuuming。
重要事項: |
---|
當 Vacummer 正在執行或若已排程要執行時,請勿手動執行 Vacuumer。可能會發生應用程式錯誤,而已經過時的資料仍然保持完整。請查看應用程式定義以判定 Vacuuming 排程。如果應用程式定義不包含 Vacuuming 排程,應用程式不會自動移除已經過時的資料。 |
使用位於應用程式資料庫中的 NSVacuum 預存程序來手動執行 Vacuuming。如需詳細資訊,請參閱<NSVacuum (Transact-SQL)>。
請參閱
概念
其他資源
Vacuum Element (ADF)
NSVacuum (Transact-SQL)