共用方式為


設定資料移除

當 Notification Services 應用程式執行時,它會累積事件、通知和散發資料表中的資料,以及 Notification Services 元件用來協調其作業的控制表。如果未從應用程式資料庫中移除這項資料,資料庫可能會變成非常大,可能會傷害應用程式的效能。若要避免這個情況,您可以設定自動移除資料的處理序,稱為 Vacuuming

移除資料的處理序

移除 Notification Services 資料的處理序稱為 Vacuumer。Vacuumer 會從應用程式資料庫的下列資料表中刪除已經過時的事件、通知和批次標頭資料:

  • NSQuantum1
  • NSRuleFirings1
  • NSEventClassNameEventBatches
  • NSEventClassNameEvents
  • NSNotificationClassNameNotificationBatches
  • NSNotificationClassNameNotifications
  • NSDistributorWorkItems
  • NSDistributionLog

只會從系統中移除已處理的事件批次,以及已傳送、過期或失敗且沒有任何其他排定的傳遞嘗試之通知資料。

Vacuumer 會根據每份資料表的記錄數目上限來限制每次刪除的記錄數目。這會限制每個資料移除間隔的持續時間,可讓 Vacuumer 正常運作,且不會過度消耗系統資源和應用程式處理時間。

ms171064.note(zh-tw,SQL.90).gif重要事項:
移除資料會消耗大量資料庫系統資源。請只在系統活動量較低的時段執行資料移除處理序。

保留時間

當您設定 Vacuumer 時,您會指定事件和通知資料的保留時間。當 Vacuumer 啟動時,它會讀取資料庫伺服器的系統時鐘,再識別已達保留時間的所有資料。

當您指定保留時間時,您必須決定事件和通知資料要保留多久。由於移除資料也會從散發記錄中移除資料,因此,請務必在資料超出保留時間之前,執行了任何必要的動作來處理資料。

預設保留時間是 7 天。

排程

當您設定 Vacuumer 時,您也會指定 Vacuumer 的執行排程。排程可以包含多個開始時間和持續時間。

  • 開始時間 (以 UTC 表示,也就是國際標準時間或格林威治標準時間) 指定 Vacuumer 應該開始執行的時間。
  • 持續時間指定 Vacuumer 應該執行多久。預設持續時間是 6 小時,或直到下一個開始時間。
ms171064.note(zh-tw,SQL.90).gif重要事項:
資料移除排程沒有預設資料。如果您並未指定資料移除排程,Notification Services 就不會從應用程式資料庫中移除舊資料。

Vacuumer 會每分鐘檢查一次,以便知道它應不應該執行。這可能在指定的開始時間和實際開始時間之間,造成不超出 1 分鐘的變化。

每次 Vacuumer 完成工作單元時,它都會檢查系統時鐘來瞭解是否已超出持續時間。另外,它也會檢查資料庫來瞭解相關聯的應用程式是否已停用。如果發生這些事件,Vacuumer 便會停止運作、在事件記錄中記載一則訊息,並進入休眠狀態,直到下一個排程 Vacuuming 間隔。

當決定 Vacuuming 排程時,最好採取應用程式和資料庫伺服器使用率低的時段。如果沒有使用率低的時段,您可以提高資料移除處理序的執行頻率,使每次 Vacuuming 期間都只需要移除較少資料,這可以減少對應用程式效能的影響。

若要設定資料移除處理序

如果您利用 XML 來定義應用程式,請在應用程式定義檔案 (ADF) 中設定資料移除。如果您以程式設計的方式定義應用程式,請利用 Notification Services Management Objects (NMO) 來設定資料移除。

請參閱

概念

指定應用程式執行設定
移除過時的應用程式資料

其他資源

NSVacuum (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助