Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Entfernt auf Basis des unter low_water_mark angegebenen Werts Zeilen aus der Änderungstabelle in der aktuellen Datenbank. Diese gespeicherte Prozedur wird für Benutzer bereitgestellt, die den Cleanupprozess für Änderungstabellen direkt verwalten möchten. Da diese Prozedur alle Consumer der Änderungstabellendaten betrifft, sollte sie mit Vorsicht eingesetzt werden.
Transact-SQL-Syntaxkonventionen
Syntax
sys.sp_cdc_cleanup_change_table
[ @capture_instance = ] 'capture_instance',
[ @low_water_mark = ] low_water_mark ,
[ @threshold = ]'delete threshold'
Argumente
[ @capture\_instance = ] 'capture_instance'
Der Name der Aufzeichnungsinstanz, die der Änderungstabelle zugeordnet ist. capture_instance ist vom Datentyp sysname, hat keinen Standardwert und darf nicht NULL sein.capture_instance muss eine Aufzeichnungsinstanz benennen, die in der aktuellen Datenbank vorhanden ist.
[ @low\_water\_mark = ] low_water_mark
Eine Protokollfolgenummer (Log Sequence Number, LSN), die als neue Untergrenzenmarkierung für capture instance zu verwenden ist. low_water_mark ist vom Datentyp binary(10) und hat keinen Standardwert.Wenn der Wert ungleich NULL ist, muss er als start_lsn-Wert eines aktuellen Eintrags in der cdc.lsn_time_mapping-Tabelle vorkommen. Wird die Commitzeit des Eintrags, der durch die untere Grenze identifiziert wurde, auch in anderen cdc.lsn_time_mapping-Einträgen verwendet, wird für die untere Grenze die kleinste LSN der zu dieser Gruppe gehörenden Einträge verwendet.
Wenn der Wert explizit auf NULL festgelegt wird, wird die aktuelle low watermark für capture instance zur Definition der oberen Grenze für den Cleanupvorgang verwendet.
[ @threshold= ] 'delete threshold'
Die maximale Anzahl der Einträge, die mit einer einzelnen Anweisung beim Cleanup gelöscht werden können. delete_threshold ist vom Datentyp bigint. Der Standardwert ist 5000.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Keine
Hinweise
sys.sp_cdc_cleanup_change_table führt folgende Vorgänge aus:
Wenn der @low\_water\_mark-Parameter ungleich NULL ist, legt er den start_lsn-Wert für die capture instance auf die neue low watermark fest.
HinweisBei der neuen Untergrenzenmarkierung muss es sich nicht zwingend um die im Aufruf der gespeicherten Prozedur angegebene Untergrenzenmarkierung handeln. Wenn andere Einträge in der cdc.lsn_time_mapping-Tabelle dieselbe Commitzeit verwenden, wird der kleinste vorhandene start_lsn-Wert in der Gruppe von Einträgen als angepasste Untergrenzenmarkierung ausgewählt. Wenn der @low_water_mark-Parameter NULL ist oder die aktuelle Untergrenzenmarkierung größer als die neue Untergrenzenmarkierung ist, bleibt der start_lsn-Wert für die Aufzeichnungsinstanz unverändert.
Änderungstabelleneinträge mit __$start_lsn-Werten unterhalb der Untergrenzenmarkierung werden dann gelöscht. Der Schwellenwert zum Löschen wird verwendet, um die Anzahl gelöschter Zeilen in einer einzigen Transaktion zu begrenzen. Ein Fehler bezüglich des erfolgreichen Löschens von Einträgen wird gemeldet. Etwaige Änderungen an der Untergrenzenmarkierung der Aufzeichnungsinstanz, die aufgrund des Aufrufs vorgenommen wurden, werden davon jedoch nicht beeinflusst.
Verwenden Sie sys.sp_cdc_cleanup_change_table in folgenden Situationen:
Der Auftrag des Cleanup-Agents meldet Löschfehler.
Ein Administrator kann diese gespeicherte Prozedur explizit ausführen, um einen fehlgeschlagenen Vorgang zu wiederholen. Um das Cleanup für eine gegebene Aufzeichnungsinstanz zu wiederholen, führen Sie sys.sp_cdc_cleanup_change_table aus, und geben Sie für den @low\_water\_mark-Parameter NULL an.
Die vom Cleanup-Agentauftrag verwendete einfache beibehaltungsbasierte Richtlinie ist nicht ausreichend.
Da diese gespeicherte Prozedur ein Cleanup für eine einzelne Aufzeichnungsinstanz durchführt, kann sie verwendet werden, um eine benutzerdefinierte Cleanupstrategie zu erstellen, bei der die Cleanupregeln auf die jeweilige Aufzeichnungsinstanz zugeschnitten werden.
Berechtigungen
Erfordert die Mitgliedschaft in der festen db_owner-Datenbankrolle.
Siehe auch
Verweis
cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)