Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Achten Sie auf neue Tabelleneinträge in der SQL-Datenbank

Hier sind meine Vorschläge:

  1. Wenn Sie der Datenbank eine doppelte Tabelle hinzufügen können, finden Sie hier eine Lösung. Sie haben Ihre Tabelle1 und Tabelle2 (Kopie von Tabelle1 ). Wenn Sie neue Datensätze in table1 einfügen , können Sie sie mit vorhandenen Datensätzen in Ihrer Tabelle2 vergleichen und so neue Rekorde finden. Nach dem Vergleich sollten Sie alle neuen Datensätze zu table2 hinzufügen . Das ist eine Art Synchronisation. Dies kann über eine gespeicherte Prozedur oder programmgesteuert erfolgen.

  2. Sie brauchen keine weiteren Tische. Sie können alle Ihre Daten in Ihrem App-Cache speichern und mit einem bestimmten Zeitraum (z. B. 5 Sekunden) prüfen, ob es neue Ereignisse gibt, die nicht in Ihrem Cache vorhanden sind. Wenn sie nicht existieren - benachrichtigen Sie sie in Ihrem Protokoll oder woanders und fügen Sie sie dem Cache hinzu. Aber wenn es zu viele Datensätze gibt, wird die Verarbeitungszeit stark erhöht + Speicherverbrauch.

  3. Wenn Sie in der Lage sind, db zu ändern, können Sie Ihrer Tabelle so etwas wie die Spalte „isNew“ hinzufügen. Wenn neue Daten von der Website kommen, ist die Spalte „true“, Ihr Programm kann dies nachverfolgen und nach der Verarbeitung dieses Flag für jeden Datensatz auf „false“ setzen. (Wenn die Website dieses Flag nicht setzen kann, können Sie SQL TRIGGER AFTER INSERT verwenden um den Flag-Wert auf wahr zu setzen. Die Website kann diese Funktion nicht einmal kennen, wenn es sich um eine Website eines Drittanbieters handelt oder Sie dort nichts ändern möchten)

  4. Hier ist ein Artikel über die Nachverfolgung von EF-Änderungen:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx

Das Problem ist jedoch, dass Sie die gesamte Tabelle über EF auf Änderungen überprüfen sollten, die sich auf die Leistung Ihrer App auswirken.

Hier finden Sie nützliche Informationen zur Nachverfolgung von SQL Server-seitigen Änderungen und zu Implementierungskonzepten:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com/en-us/library/bb933994.aspx