Я процес планування живої міграції бази даних 2TB до розділених таблиць. Система в цілому говорить про зберігання документів, більша частина простору виділяється LOB, розміром від 50 кбіт до 500 кбіт, з невеликим відсотком в діапазоні від 500 кБ до 1 МБ. Частина міграції буде включати дані BCPing зі старої до нової бази даних.
BCP є кращим підходом, оскільки поточний / історичний поділ у даних дозволяє витягувати старі дані поетапно (протягом тихіших періодів) до остаточного перемикання, мінімізуючи вплив на живу систему. Обсяг даних та доступність пам’яті виключає перебудову на місці до схеми розділів .
Я підозрюю, що, можливо, через деякий експеримент із KILOBYTES_PER_BATCH, а не ROWS_PER_BATCH, можливо, якісь ефективніші досягнення мають вміст BLOB. У документації BCP пропонується, що SQL може оптимізувати операції на основі цього значення.
Що я не можу знайти, це будь-які вказівки щодо природи цих оптимізацій або з чого почати тестування. У відсутності пропозицій я спробую почати короткі пробіги в межах 4/8/16/32/64 Мб.
Можливо, деякі вигоди будуть від зміни розміру пакету (параметр BCP -а, а не встановлення рівня сервера), але я схильний підбивати це до максимуму 65535, якщо хтось не має більш формульного підходу.