Alternativa a Elimina Trigger per il tracciamento dei record cancellati

.net provisioning sqlbulkcopy sql-server tsql

Domanda

Ho un compito per creare un servizio di replica dei dati di grandi dimensioni che fornirà il nostro data warehouse. i database di origine risiedono su altri server.

Finora, sono stato in grado di implementare gli elementi di aggiornamento e inserimento nel magazzino utilizzando la combinazione della classe SqlBulkCopy e l'istruzione TSql Excepts.

il mio problema ora sta gestendo la cancellazione dei record. l'unica cosa che posso pensare per la gestione delle eliminazioni era creare un trigger personalizzato sulla tabella, inserire i record cancellati in una tabella temporanea che il mio servizio potesse leggere e rimuovere dal magazzino.

So che ci sono molti strumenti per la replica dei dati, ma l'azienda vuole un servizio personalizzato in casa.

si noti che alcune delle tabelle che verranno fornite sono oltre 100 milioni di record.

Eventuali suggerimenti?

Risposta accettata

Non penso che un trigger di cancellazione sarebbe così male. 100 milioni di dischi sono sicuramente un buon pezzo, ma si sta eseguendo il trigger sul server, in modo che SQL possa ottimizzare il percorso di esecuzione.

Se fai qualcos'altro lato client, dovrai sostenere un sovraccarico per prelevare i record dal server e quindi impartire comandi di cancellazione al magazzino.

Cos'è di un trigger che ti dà fastidio?


Risposta popolare

SQL Server ha il rilevamento delle modifiche integrato (almeno nel 2008 R2, non sono sicuro di quando è stata introdotta esattamente questa funzione). Leggi di più qui: http://msdn.microsoft.com/en-us/library/cc280462.aspx



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché