Sappiamo tutti che ef ha un scarso supporto per le operazioni batch, se usi ef per inserire più dati in batch o per aggiornare o cancellare più istruzioni in batch, è una perdita di tempo, quindi come ottimizzare le operazioni ef per una grande quantità di dati?
Niente scherzate, prima fai uno screenshot, non c'è nessuna tabella di confronto prima e dopo l'ottimizzazione!
Statistiche nel caso di inserire gli stessi 3814 dati e il database è SQL Server
Prima dell'ottimizzazione:Il tempo medio era di 2479 secondi
Dopo l'ottimizzazione:Il tempo medio era di 149 secondi
Il codice di inserimento per la chiamata è il seguente:
Codice prima dell'ottimizzazione:
Codice ottimizzato:
Altro codice di prova:
Schema di ottimizzazione:
Utilizziamo un'estensione di terze parti "Z.EntityFramework.Extensions", homepage ufficiale: http://entityframework-extensions.net/
Introdurre:
Struttura Entity: inserimento in massa, BulkSaveChanges, aggiornamento in massa, cancellazione in massa, fusione in blocco e sincronizzazione in massa.
Supporta: SQL Server, SQL Azure, SQL Compact, Oracle, MySQL, SQLite e PostgreSQL.
Questa biblioteca non è gratuita. Il periodo di prova termina sempre alla fine del mese.
Comando di installazione Nuget:
|