Нужно ли мне убедиться, что каждая партия полностью заполнена? то есть, если бы у меня был набор данных со 12028 строками, мог бы я просто использовать размер пакета 10 КБ, и он автоматически создал бы 2 пакета, 1 с 10 КБ и 1 с 2028 К?
Спасибо.
Согласно MSDN: SqlBulkCopy.BatchSize -
Если экземпляр SqlBulkCopy был объявлен без Действует опция UseInternalTransaction, строки отправляются на сервер BatchSize строк за один раз, но никакие связанные с транзакцией действия не предпринимаются. Если UseInternalTransaction действует, каждый пакет строк вставляется как отдельная транзакция. Свойство BatchSize может быть установлено в любое время. Если массовая копия уже выполняется, текущая партия имеет размер в соответствии с предыдущий размер партии. Последующие партии используют новый размер. Если BatchSize изначально равен нулю и изменяется в то время как WriteToServer операция уже выполняется, эта операция загружает данные как одна партия Любые последующие операции WriteToServer на том же Экземпляр SqlBulkCopy использует новый BatchSize.
Если экземпляр SqlBulkCopy был объявлен без Действует опция UseInternalTransaction, строки отправляются на сервер BatchSize строк за один раз, но никакие связанные с транзакцией действия не предпринимаются. Если UseInternalTransaction действует, каждый пакет строк вставляется как отдельная транзакция.
Свойство BatchSize может быть установлено в любое время. Если массовая копия уже выполняется, текущая партия имеет размер в соответствии с предыдущий размер партии. Последующие партии используют новый размер. Если BatchSize изначально равен нулю и изменяется в то время как WriteToServer операция уже выполняется, эта операция загружает данные как одна партия Любые последующие операции WriteToServer на том же Экземпляр SqlBulkCopy использует новый BatchSize.
Исходя из этой информации, я склонен полагать, что при установке размера пакета на 10 000 строк и предоставлении 12 000+ будет создано несколько пакетов.