Как уже говорили другие, это зависит от вашей среды, в частности от объема строки и задержки в сети.
Лично я бы начал с установки свойства BatchSize
на 1000 строк и посмотрел, как это работает. Если это работает, то я продолжаю удваивать количество строк (например, до 2000, 4000 и т. Д.), Пока не получу тайм-аут.
В противном случае, если время ожидания составляет 1000, я уменьшу количество строк наполовину (например, 500), пока оно не заработает.
В каждом случае я продолжаю удваивать (в случае успеха) или делить пополам (если не удается) разницу между каждым из двух последних предпринятых размеров партии до тех пор, пока не найду подходящее место.
Другой фактор, который необходимо учитывать, - это сколько времени занимает копирование одной серии строк. Тайм-ауты произойдут, если копируемый пакет строк превышает свойство BulkCopyTimeout
, которое по умолчанию составляет 30 секунд. Вы можете попробовать удвоить свойство BulkCopyTimeout
до 60 секунд. Это позволяет более длительный период времени копировать больший набор строк пакета. Например, партия из 50000 строк может занять около 40 секунд, что просто превышает 30-секундный лимит времени, поэтому увеличение его до 60 секунд может повысить производительность.