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

Cerca una tabella nuovi record nel database sql

Ecco le mie proposte:

  1. Se sei in grado di aggiungere una tabella duplicata al database, ecco una soluzione. Hai la tua tabella1 e tabella2 (Copia della tabella1 ). Quando inserisci nuovi record nella tabella1 , puoi confrontarli con i record esistenti nella tua table2 e quindi trovare nuovi record. Dopo il confronto, dovresti aggiungere tutti i nuovi record a table2 . Questa è una specie di sincronizzazione. Questo può essere fatto tramite stored proc o programmaticamente.

  2. Non hai bisogno di altri tavoli. Puoi archiviare tutti i tuoi dati nella cache dell'app e verificare con un certo periodo di tempo (ad esempio 5 secondi) ci sono nuovi eventi che non esistono nella tua cache. Se non esistono, avvisali nel tuo registro o da qualche altra parte e aggiungili alla cache. Ma se ci sono troppi record, il tempo di elaborazione aumenterà notevolmente + il consumo di memoria.

  3. Se sei in grado di cambiare db, puoi aggiungere qualcosa come la colonna "isNew" alla tua tabella. Quando un nuovo dato proviene dal sito Web, la colonna sarà "true", il tuo programma può tenerne traccia e, dopo l'elaborazione, impostare questo flag su false per ogni record. (Se il sito Web non può impostare questo flag, puoi utilizzare SQL TRIGGER AFTER INSERT per impostare il valore del flag su true. Il sito Web non può nemmeno sapere di questa funzione se si tratta di un sito Web di terze parti o se non desideri modificare nulla lì)

  4. Ecco l'articolo sul monitoraggio delle modifiche EF:http://blogs.msdn.com/b/adenet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx

Ma il problema è che dovresti controllare l'intera tabella per le modifiche tramite EF che colpiranno le prestazioni della tua app.

Di seguito sono riportate informazioni utili sul rilevamento delle modifiche laterali di SQL Server e sui concetti di implementazione:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com/en-us/library/bb933994.aspx