Alternativa a Eliminar Trigger para rastrear registros eliminados

.net provisioning sqlbulkcopy sql-server tsql

Pregunta

Tengo la tarea de crear un gran servicio de replicación de datos que aprovisione nuestro almacén de datos. Las bases de datos de origen residen en otros servidores.

Hasta ahora, he podido implementar los elementos Actualizar e Insertar en el almacén mediante la conjunción de la clase SqlBulkCopy y la declaración de excepciones de TSql.

Mi problema ahora es manejar la eliminación de registros. Lo único en lo que puedo pensar para manejar las eliminaciones fue crear un desencadenante personalizado en la tabla, insertar registros eliminados en una tabla temporal que mi servicio pudiera leer y eliminar del almacén.

Sé que hay muchas herramientas de replicación de datos, pero la compañía quiere un servicio personalizado en casa.

Tenga en cuenta que algunas de las tablas que se aprovisionarán tienen más de 100 millones de registros.

¿Alguna sugerencia?

Respuesta aceptada

No creo que un desencadenador Eliminar sea tan malo. 100 millones de registros es definitivamente una buena parte, pero está ejecutando el disparador en el servidor, de una manera que SQL puede optimizar la ruta de ejecución.

Si hace algo más en el lado del cliente, incurrirá en gastos generales por recuperar los registros del servidor y luego emitir comandos de eliminación al almacén.

¿De qué se trata un disparador que te está molestando?


Respuesta popular

SQL Server tiene un seguimiento de cambios incorporado (al menos en 2008 R2, no estoy seguro de cuándo se introdujo exactamente esta característica). Lea más aquí: http://msdn.microsoft.com/en-us/library/cc280462.aspx



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué