Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zalecane użycie tabeli tymczasowej lub zmiennej tabeli w Entity Framework 4. Zaktualizuj strukturę Performance Entity

W przypadku ilości danych, takich jak 300 tys. wierszy, zapomniałbym EF. Zrobiłbym to, mając stół taki jak:

BatchId  RowId

Gdzie RowId to PK wiersza, który chcemy zaktualizować, a BatchId po prostu odnosi się do tego „przebiegu” 300 tys. wierszy (aby umożliwić wiele naraz itp.).

Wygenerowałbym nowy BatchId (może to być cokolwiek unikalnego -Guid, jak na myśl przychodzą mi na myśl) i użyje SqlBulkCopy, aby wstawić te rekordy do tej tabeli, tj.

100034   17
100034   22
...
100034   134556

Następnie użyłbym prostego sproc, aby wykonać połączenie i aktualizację (i usunąć partię z tabeli).

SqlBulkCopy to najszybszy sposób na dostarczenie takiej ilości danych na serwer; nie utoniesz w podróżach w obie strony. EF jest zorientowany obiektowo:fajny w wielu scenariuszach - ale nie w tym.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić domyślną wartość dla istniejącej kolumny?

  2. Migawki bazy danych programu SQL Server -2

  3. wyświetlanie wielu rekordów za pomocą zestawu wyników

  4. Konwertuj numer miesiąca na nazwę miesiąca w programie SQL Server (T-SQL)

  5. SqlDbType i geografia