Todos sabemos que ef tiene un soporte pobre para operaciones por lotes; si usas ef para insertar varios datos en lotes o para actualizar o eliminar varias sentencias en lotes, es una pérdida de tiempo, así que ¿cómo optimizar las operaciones de ef para una gran cantidad de datos?
Sin tonterías, haz una captura de pantalla primero, ¡no hay tabla comparativa antes y después de la optimización!
Estadísticas en el caso de insertar las mismas 3814 piezas de datos y la base de datos es SQL Server
Antes de la optimización:El tiempo medio era de 2479 segundos
Después de la optimización:El tiempo medio era de 149 segundos
El código de inserción para la llamada es el siguiente:
Código antes de optimización:
Código optimizado:
Otros códigos de prueba:
Esquema de optimización:
Utilizamos una extensión de terceros llamada "Z.EntityFramework.Extensions", página oficial de la página oficial: http://entityframework-extensions.net/
Introducir:
Marco de entidades: Inserción masiva, BulkSaveChanges, actualización masiva, eliminación masiva, fusión masiva y sincronización masiva.
Compatibles: SQL Server, SQL Azure, SQL Compact, Oracle, MySQL, SQLite y PostgreSQL.
Esta biblioteca no es gratuita. El periodo de prueba siempre termina a final de mes.
Comando de instalación Nuget:
|