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

Consiglia l'uso della tabella temporanea o della variabile della tabella in Entity Framework 4. Aggiorna il framework dell'entità delle prestazioni

Per volumi di dati come 300.000 righe, dimenticherei EF. Lo farei avendo una tabella come:

BatchId  RowId

Dove RowId è il PK della riga che vogliamo aggiornare e BatchId si riferisce semplicemente a questa "corsa" di 300.000 righe (per consentirne più contemporaneamente ecc.).

Genererei un nuovo BatchId (questo potrebbe essere qualcosa di unico - mi viene in mente la guida) e userei SqlBulkCopy per inserire i record su questa tabella, ad es.

100034   17
100034   22
...
100034   134556

Vorrei quindi utilizzare un simngle sproc per eseguire l'unione e l'aggiornamento (ed eliminare il batch dalla tabella).

SqlBulkCopy è il modo più veloce per trasferire questo volume di dati al server; non annegherai nei viaggi di andata e ritorno. EF è orientato agli oggetti:adatto a molti scenari, ma non questo.