Оптимізація продуктивності BCP для даних BLOB


13

Я процес планування живої міграції бази даних 2TB до розділених таблиць. Система в цілому говорить про зберігання документів, більша частина простору виділяється LOB, розміром від 50 кбіт до 500 кбіт, з невеликим відсотком в діапазоні від 500 кБ до 1 МБ. Частина міграції буде включати дані BCPing зі старої до нової бази даних.

BCP є кращим підходом, оскільки поточний / історичний поділ у даних дозволяє витягувати старі дані поетапно (протягом тихіших періодів) до остаточного перемикання, мінімізуючи вплив на живу систему. Обсяг даних та доступність пам’яті виключає перебудову на місці до схеми розділів .

Я підозрюю, що, можливо, через деякий експеримент із KILOBYTES_PER_BATCH, а не ROWS_PER_BATCH, можливо, якісь ефективніші досягнення мають вміст BLOB. У документації BCP пропонується, що SQL може оптимізувати операції на основі цього значення.

Що я не можу знайти, це будь-які вказівки щодо природи цих оптимізацій або з чого почати тестування. У відсутності пропозицій я спробую почати короткі пробіги в межах 4/8/16/32/64 Мб.

Можливо, деякі вигоди будуть від зміни розміру пакету (параметр BCP -а, а не встановлення рівня сервера), але я схильний підбивати це до максимуму 65535, якщо хтось не має більш формульного підходу.

Відповіді:


12

Це не пряма відповідь на ваше запитання, але є кілька статей, які ви б з користю прочитали (якщо ви їх не знайшли першими :-)). Йдеться про завантаження безлічі даних за допомогою bcp / bulk copy. Я прочитав їх усі, і не знайшов нічого детального щодо KILOBYTES_PER_BATCH, всі вони використовують ROWS_PER_BATCH, але я впевнений, що ви знайдете іншу корисну інформацію.

і очевидні посилання MSDN:

З мого особистого досвіду мені вдалося зробити швидке завантаження даних, використовуючи паралельне завантаження та тестування з кількома розмірами партії. Я здогадуюсь, що вам підходить лише особисте тестування. Сподіваємось, ви знайдете кілька порад в посиланнях.


Дякую вам, Мар'ян, я заклав у закладки кілька нових знахідок із цього вичерпного списку. Як єдине завдання, багато кроків з поглиблення / уточнення не є настільки корисними, але є багато підказок, якими я можу скористатися.
Марк Сторі-Сміт

Так, я розумію, що для мене теж було разовим завданням, і я знайшов у списку корисні речі. Хоча це велике завдання :-). Ви також можете зробити невелику програму .NET (якщо ви знайомі з .NET), як в іншій статті від Linchi Shea: Вплив продуктивності: найоптимальніший сценарій вставки не може обіграти BulkCopy . Ви можете знайти те саме, що і він :-).
Мар’ян

Оскільки, здається, немає жодної специфічної вказівки щодо BLOB в дикій природі, я відзначаю вашу дуже ретельну відповідь прийнятою. Знову дякую.
Марк Сторі-Сміт

Вибачте, що я не міг вам більше допомогти, але сподіваюся, що ви знайшли в ньому щось корисне.
Маріан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.