Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modifica acquisizione dati solo per aggiornamenti ed eliminazioni

Userei semplicemente un trigger per acquisire aggiornamenti ed eliminazioni.

Non penso che tu possa dire a CDC a quale DML prestare attenzione e penso che sia piuttosto dispendioso lasciare che CDC registri tutti questi inserti solo per eliminarli in seguito. Questo di per sé è costoso e la frammentazione che causerà causerà anche problemi per qualsiasi query eseguita sulle tabelle di acquisizione (avrai molte pagine per lo più vuote) così come le statistiche di lavoro dovranno costantemente mantieni le statistiche aggiornate.

Potresti inserire un trigger invece di inserire nella tabella di acquisizione, che non fa nulla, ma non ho provato a farlo nemmeno per vedere se è consentito, e certamente non so quale impatto avrà sul Funzioni CDC. Forse vale la pena indagare, ma la mia risposta originale è ancora valida anche se questo hack funziona:usa semplicemente un trigger.