PurgeType 列舉
指定使用 SqlCeChangeTracking 類別的 PurgeTombstoneTableData 方法或 PurgeTransactionSequenceData 方法時要用來清除中繼資料的準則。
命名空間: System.Data.SqlServerCe
組件: System.Data.SqlServerCe (在 System.Data.SqlServerCe.dll 中)
語法
'宣告
Public Enumeration PurgeType
'用途
Dim instance As PurgeType
public enum PurgeType
public enum class PurgeType
type PurgeType
public enum PurgeType
成員
成員名稱 | 說明 | |
---|---|---|
None | 這個值是保留給追蹤基礎結構使用。請勿將它用於程式碼中。 | |
TimeBased | 指定要根據中繼資料是否超過指定的天數,刪除中繼資料。 | |
CsnBased | 指定要根據修改中繼資料之最後一筆交易的認可序號 (CSN),刪除中繼資料。 | |
Max | 這個值是保留給追蹤基礎結構使用。請勿將它用於程式碼中。 |
備註
以時間為基礎的清除會在中繼資料超過指定的天數時刪除中繼資料。例如,在使用追蹤來實作同步的應用程式中,當追蹤資料已同步至伺服器 (或一組對等) 之後,就不再需要此資料。應用程式可以保留追蹤資料特定的天數 (n),並且針對使用者加諸限制,要求他們至少每隔 n 天與伺服器 (或一組對等) 同步一次。
以 CSN 為基礎的清除會在交易 (其 CSN 小於或等於指定的 CSN) 最後一次修改中繼資料時刪除中繼資料。與資料列相關聯的 CSN 表示已編列資料庫之交易的認可順序。在以 CSN 為基礎的清除中,系統會根據認可順序 (而非時間順序) 刪除資料。例如,如果交易最後一次修改了資料列,而且該資料列截至目前為止認可了 100 筆交易,可能就不再需要此資料列。
以 CSN 為基礎的清除很有用的原因是,只有在認可交易之後,交易所進行的變更才會顯示給應用程式。例如,針對變更追蹤所建立的通知應用程式只有在變更資料認可的交易之後,才能向訂閱者通知變更。應用程式可以保留最後 100 筆交易的緩衝區,讓訂閱者能夠回應通知,並且清除超過該數目的任何交易。
以時間為基礎的清除與以 CSN 為基礎的清除並不相等,因為資料列的時間戳記是在插入或更新時指派的。以長時間執行的交易為例,其認可時間可能與已修改資料列的時間戳記值大不相同。以 CSN 為基礎的清除要等到交易認可之後,才會刪除中繼資料。