Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Änderungsdatenerfassung nur für Aktualisierungen und Löschungen

Ich würde nur einen Trigger verwenden, um Aktualisierungen und Löschungen zu erfassen.

Ich glaube nicht, dass Sie CDC sagen können, auf welche DML zu achten ist, und ich denke, es ist ziemlich verschwenderisch, CDC alle diese Einfügungen aufzeichnen zu lassen, nur um sie danach zu löschen. Das ist an und für sich teuer, und die dadurch verursachte Fragmentierung wird auch Probleme für alle Abfragen verursachen, die Sie für die Erfassungstabellen ausführen (Sie haben viele größtenteils leere Seiten), und die Arbeitsstatistiken müssen ständig zu tun haben halten Sie die Statistiken auf dem neuesten Stand.

Sie könnten möglicherweise einen Trigger anstelle von Insert auf die Capture-Tabelle setzen, das tut einfach nichts, aber ich habe nicht versucht, dies zu tun, um zu sehen, ob es erlaubt ist, und ich weiß sicherlich nicht, welche Auswirkungen das auf die haben wird CDC-Funktionen. Möglicherweise eine Untersuchung wert, aber meine ursprüngliche Antwort bleibt bestehen, auch wenn dieser Hack funktioniert:Verwenden Sie einfach einen Trigger.