Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Modifier la capture de données pour les mises à jour et les suppressions uniquement

J'utiliserais simplement un déclencheur pour capturer les mises à jour et les suppressions.

Je ne pense pas que vous puissiez dire à CDC à quel DML faire attention, et je pense que c'est un gaspillage de laisser CDC enregistrer tous ces inserts uniquement pour les supprimer par la suite. Cela en soi est coûteux et la fragmentation qu'il entraînera entraînera également des problèmes pour toutes les requêtes que vous exécutez sur les tables de capture (vous aurez beaucoup de pages pour la plupart vides) ainsi que les statistiques de travail devront constamment gardez les statistiques à jour.

Vous pourriez éventuellement mettre un déclencheur au lieu d'insérer sur la table de capture, cela ne fait rien, mais je n'ai pas essayé de le faire même pour voir si c'est autorisé, et je ne sais certainement pas quel impact cela aura sur le Fonctions CDC. Cela vaut peut-être la peine d'être étudié, mais ma réponse d'origine reste valable même si ce hack fonctionne :utilisez simplement un déclencheur.