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 的清除不删除元数据。