Wydajność SqlBulkCopy
Pracuję nad zwiększeniem wydajności ładunków masowych; 100 milionów rekordów + dziennie.
Przeniosłem to, aby użyćIDatareader
interfejs zamiast tabel danych i uzyskano zauważalny wzrost wydajności (500 000 rekordów na minutę). Obecna konfiguracja to:
IDatareader
berło.NastępnieSqlBulkCopy
zapisuje na serwerzeWiększa część szyjki butelki jest bezpośrednio wSqlBulkCopy.WriteToServer
. Jeśli urządzenie przetestuję proces do, ale z wyłączeniem tylkoWriteToServer
proces powraca po około 1 minucie.WriteToServer
trwa dodatkowe 15 minut +. W przypadku testu jednostkowego jest on na mojej lokalnej maszynie, więc ten sam napęd, na którym działa baza danych, nie musi kopiować danych w sieci.
Używam tabeli sterty (bez indeksów; klastrowanych lub nieklastrowanych; grałem w różnych rozmiarach partii bez większych różnic w wydajności).
Istnieje potrzeba skrócenia czasów ładowania, więc mam nadzieję, że ktoś może teraz wycisnąć trochę więcej krwi z tej zmiany.