Если вы перемещаете данные с одного SQL сервера на другой сервер MS SQL, то использование опции -N для копирования данных в ваши файлы в собственном формате поможет сократить время на преобразование типов данных в текст.
Использование параметра -a для указания размера сетевого пакета. Я не могу предложить здесь правильное значение, так как это будет зависеть от вашей сети (идет ли файл на диск, который распространяется с сервера? Если так, то попробуйте здесь другие значения ... если нет, не беспокойтесь ... не участвует в сети).
Используйте параметр -b при импорте данных в пункт назначения. Я не могу предложить здесь правильное значение, так как оно будет зависеть от архитектуры вашей системы, но поиграйтесь с этим значением в тестировании, чтобы получить уточненное значение. Это не работает с экспортом.
При экспорте большой таблицы выведите копию в несколько файлов. Надеемся, что у ваших больших таблиц есть цифра c или какое-либо число чисел c, которое имеет высокую селективность. Это значение можно использовать для разделения ваших данных на 10 или 100 потоков. Это позволит вам одновременно выполнять несколько команд bcp, используя одну и ту же таблицу. Используйте опцию «queryout» и команду типа:
«select * from db.dbo.mytable, где ключ% 10 = 0», чтобы получить 1/10 данных и:
» выберите * из db.dbo.mytable, где ключ% 10 = 1 ", чтобы получить следующую или другую 1/10 часть данных.
Выполнить столько, сколько может выдержать ваш исходный сервер. Это отлично подходит для ускорения копирования, но будьте осторожны при загрузке в место назначения. Вы не сможете бежать так много вместе. Это, вероятно, будет вашим самым большим приростом производительности. Чтобы получить столько команд BCP, сколько может выдержать ваш исходный сервер.