Freigeben über


PurgeType-Enumeration

Gibt die Kriterien an, die bei Verwendung der PurgeTombstoneTableData-Methode oder der PurgeTransactionSequenceData-Methode der SqlCeChangeTracking-Klasse zum endgültigen Löschen von Metadaten verwendet werden sollen.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Syntax

'Declaration
Public Enumeration PurgeType
'Usage
Dim instance As PurgeType
public enum PurgeType
public enum class PurgeType
type PurgeType
public enum PurgeType

Elemente

Elementname Beschreibung
None Dieser Wert ist für die Verwendung durch die Nachverfolgungsinfrastruktur reserviert. Er sollte nicht im Code verwendet werden.
TimeBased Gibt an, dass Metadaten abhängig davon gelöscht werden, ob sie eine angegebene Anzahl von Tagen überschreiten.
CsnBased Gibt an, dass Metadaten auf Grundlage der Commitfolgenummer (CSN) der letzten Transaktion gelöscht werden, durch die sie geändert wurden.
Max Dieser Wert ist für die Verwendung durch die Nachverfolgungsinfrastruktur reserviert. Er sollte nicht im Code verwendet werden.

Hinweise

Bei einem zeitbasierten Löschvorgang werden die Metadaten gelöscht, sobald sie eine angegebene Anzahl von Tagen überschritten haben. Beispielsweise werden Nachverfolgungsdaten in einer Anwendung, die Synchronisierungen anhand der Nachverfolgung implementiert, nicht mehr benötigt, nachdem die Daten mit dem Server (oder einer Gruppe von Peers) synchronisiert wurden. Die Anwendung könnte Nachverfolgungsdaten nur für eine bestimmte Anzahl von Tagen (n) beibehalten und die Einschränkung festlegen, dass Benutzer Daten mindestens alle "n" Tage mit dem Server (oder der Gruppe von Peers) synchronisieren müssen.

Bei einem CSN-basierten Löschvorgang werden die Metadaten gelöscht, wenn sie zuletzt von einer Transaktion mit einer CSN geändert wurden, die kleiner oder gleich einer angegebenen CSN ist. Die einer Zeile zugeordnete CSN gibt die Commitreihenfolge der Transaktionen an, in die die Datenbank eingetragen wurde. In einem CSN-basierten Löschvorgang werden Daten auf Grundlage der Commitreihenfolge und nicht auf Grundlage der zeitlichen Abfolge gelöscht. Wenn eine Zeile z. B. zuletzt durch eine Transaktion geändert wurde, für die vom aktuellen Zeitpunkt gerechnet vor 100 Transaktionen ein Commit ausgeführt wurde, wird sie u. U. nicht mehr benötigt.

Das CSN-basierte Cleanup ist sinnvoll, weil von Transaktionen vorgenommene Änderungen für eine Anwendung nur sichtbar sind, nachdem für die Transaktion ein Commit ausgeführt wurde. Beispiel: Eine auf der Änderungsnachverfolgung basierende Benachrichtigungsanwendung kann Abonnenten erst über Änderungen benachrichtigen, nachdem für die Transaktion, durch die Daten geändert wurden, ein Commit ausgeführt wurde. Die Anwendung könnte die letzten 100 Transaktionen in einem Puffer beibehalten, damit Abonnenten auf die Benachrichtigungen reagieren können, und alle älteren Transaktionen endgültig löschen.

Ein zeitbasierter Löschvorgang unterscheidet sich von einem CSN-basierten Löschvorgang darin, dass der Timestamp einer Zeile zum Zeitpunkt einer Einfügung oder Aktualisierung zugewiesen wird. Bei einer Transaktion mit langer Laufzeit kann sich die Commitzeit deutlich vom Timestampwert der geänderten Zeile unterscheiden. Bei einem CSN-basierten Löschvorgang werden die Metadaten erst gelöscht, nachdem ein Commit für die Transaktion ausgeführt wurde.

Siehe auch

Verweis

System.Data.SqlServerCe-Namespace

PurgeTombstoneTableData

PurgeTransactionSequenceData