/ / ADO.NET i SQLBULKCOPY - Maksymalny limit rekordów do wstawienia? - .net, sql, ado.net

ADO.NET i SQLBULKCOPY - Maksymalny limit rekordów do wstawienia? - .net, sql, ado.net

Czy istnieje limit ilości rekordów, które ADO.net może wstawiać do bazy danych jednocześnie? Chcemy pracować z sqlbulkcopy ale programiści mówią nam, że ADO nie wstawia więcej niż 1000 rekordów na raz, więc sqlbulkcopy wstawianie partii 10000 rekordów jest bezużyteczne. Czy to prawda? Robi sqlbulkcopy wstawić duże partie 1000 za każdym razem do 10000?

Nie sądzę, że ADO ma maksymalną liczbę rekordów, ale są deweloperami, więc nie jestem pewien.

Odpowiedzi:

2 dla odpowiedzi № 1

To nie jest prawda. W rzeczywistości musisz zestaw temu BatchSize Właściwości, jeśli chcesz jeden, ponieważ wartość domyślna to 0, lub bez limitu.

Dalsze, po zapoznaniu się z WriteToServerInternal metoda SqlBulkCopy Klasa, która jest jedyną rzeczą, że ograniczenie liczby wierszy wysyłane w jednej partia.

Wreszcie nawet jeśli je podesłał instancje 1000 wierszy jest ograniczona do ogólnej liczby wierszy, które mogą być wstawiane.Dobrze, z wyjątkiem pamięci maszyny z systemem, jeśli to "s odbywa się za pomocą DataTable na przykład. Ale jeśli tego dane są kopiowane z jednego serwera do drugiego za pośrednictwem SqlDataReader, jest Brak ogólnego limitu że udało się osiągnąć w jakichkolwiek sposób kształt lub formę.


0 dla odpowiedzi nr 2
BULKCOPY.BATCHSIZE=1000;

To pomoże Ci rozwiązać błąd kopiowania luzem.