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