Witam,
macie jakieś sprawdzone sposoby na przyśpieszenie zapytań w C# lub VB.net - typu INSERT do MSSQL.
Muszę za pomocą pętli naraz wrzucić 2 800 000 rows z 6cioma kolumnami i wrzuca mi to z 8 minut, wydaję mi się, że stanowczo za długo.
Witam,
macie jakieś sprawdzone sposoby na przyśpieszenie zapytań w C# lub VB.net - typu INSERT do MSSQL.
Muszę za pomocą pętli naraz wrzucić 2 800 000 rows z 6cioma kolumnami i wrzuca mi to z 8 minut, wydaję mi się, że stanowczo za długo.
To zależy od tego, jak to robisz obecnie i jak komunikujesz się z bazą?
Przy korzystaniu z ORMów generalnie dobrze jest wrzucać paczkami sensownego rozmiaru, bo narzut na wydajność przy zwiększającej się liczbie obiektów w kontekście rośnie chyba wykładniczo.
W NHibernate lepiej użyć StatelessSession
zamiast Session
. Możesz też użyć SqlBulkCopy
.
Skąd bierzesz te rekordy? Bo raczej nie użytkownik wpisuje taką ilość danych ręcznie, jeśli to jakaś migracja z innego źródła, to może lepiej użyć innego niż aplikacja rozwiązania, np. paczki SSIS.