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:

Niestandardowy buforowany czytnik do analizowania rozdzielonych plików.Zawijanie czytnika strumieni w strumieniu buforowanym.Klasa niestandardowego czytnika obiektów, która wylicza obiekty i implementujeIDatareader berło.NastępnieSqlBulkCopy zapisuje na serwerze

Wię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.

questionAnswers(1)

yourAnswerToTheQuestion