sql >> Base de Datos >  >> RDS >> Sqlserver

Esté atento a una tabla de nuevos registros en la base de datos sql

Aquí están mis proposiciones:

  1. Si puede agregar una tabla duplicada a la base de datos, aquí hay una solución. Tienes tu table1 y tabla2 (Copia de tabla 1 ). Al insertar nuevos registros en table1 , puede compararlos con los registros existentes en su tabla2 y así encontrar nuevos registros. Después de comparar, debe agregar todos los registros nuevos a table2 . Esto es una especie de sincronización. Esto se puede hacer a través de un proceso almacenado o programáticamente.

  2. No necesitas otras mesas. Puede almacenar todos sus datos en el caché de su aplicación y verificar con un período de tiempo (por ejemplo, 5 segundos) si hay eventos nuevos que no existen en su caché. Si no existen, notifíquelos en su registro o en otro lugar y agréguelos al caché. Pero si hay demasiados registros, el tiempo de procesamiento aumentará considerablemente + el consumo de memoria.

  3. Si puede cambiar db, puede agregar algo como la columna 'isNew' a su tabla. Cuando llega un nuevo dato del sitio web, la columna será 'verdadero', su programa puede realizar un seguimiento de esto y, después de procesarlo, establezca este indicador en falso para cada registro. (Si el sitio web no puede configurar este indicador, puede usar SQL TRIGGER AFTER INSERT para establecer el valor de la bandera en verdadero. El sitio web ni siquiera puede conocer esta característica si es un sitio web de un tercero o si no desea cambiar nada allí)

  4. Aquí hay un artículo sobre el seguimiento de cambios de EF:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx

Pero el problema es que debe verificar toda la tabla en busca de cambios a través de EF que afectarán el rendimiento de su aplicación.

Aquí hay información útil sobre los conceptos de implementación y seguimiento de cambios del lado de SQL Server:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com/en-us/library/bb933994.aspx