sql >> Database >  >> RDS >> Sqlserver

Beveel het gebruik van een tijdelijke tabel of tabelvariabele aan in Entity Framework 4. Update Performance Entity-framework

Voor datavolumes zoals 300.000 rijen zou ik EF vergeten. Ik zou dit doen door een tabel te hebben zoals:

BatchId  RowId

Waar RowId de PK is van de rij die we willen updaten, en BatchId verwijst alleen naar deze "run" van 300k rijen (om meerdere tegelijk toe te staan, enz.).

Ik zou een nieuwe BatchId genereren (dit kan van alles zijn -Guid komt voor de geest), en SqlBulkCopy gebruiken om de records in deze tabel in te voegen, d.w.z.

100034   17
100034   22
...
100034   134556

Ik zou dan een simpele sproc gebruiken om de join en update uit te voeren (en de batch van de tabel te verwijderen).

SqlBulkCopy is de snelste manier om deze hoeveelheid gegevens naar de server te krijgen; je zult niet verdrinken in rondreizen. EF is objectgeoriënteerd:leuk voor veel scenario's - maar niet deze.



  1. Ondersteunt CodeIgniter Datamapper ORM een MySQL CASE-instructie in ORDER BY-clausules?

  2. Mysql installeren op leopard:kan geen verbinding maken met de lokale MySQL-server via socket

  3. Waarom ondersteunt de MyISAM-engine van MySQL geen buitenlandse sleutels?

  4. Liquibase beheren met GitFlow-ontwikkelingsmodel