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 に基づくパージでは、トランザクションがコミットされるまでメタデータは削除されません。