В нашем проекте мы используем команду bcp для экспорта около миллиона строк и записи вывода в выходной файл. Для импорта bcp я могу управлять выводом команды bcp
с помощью переключателя -b
, который указывает номер. строк для импорта в пакете. Вывод примерно такой:
Starting copy...
1000 rows sent to SQL Server. Total sent: 1000
1000 rows sent to SQL Server. Total sent: 2000
1000 rows sent to SQL Server. Total sent: 3000
1000 rows sent to SQL Server. Total sent: 4000
1000 rows sent to SQL Server. Total sent: 5000
1000 rows sent to SQL Server. Total sent: 6000
1000 rows sent to SQL Server. Total sent: 7000
1000 rows sent to SQL Server. Total sent: 8000
1000 rows sent to SQL Server. Total sent: 9000
1000 rows sent to SQL Server. Total sent: 10000
1000 rows sent to SQL Server. Total sent: 11000
1000 rows sent to SQL Server. Total sent: 12000
SQLState = 22001, NativeError = 0
можно легко уменьшить, увеличив число, отправляемое с помощью переключателя -b
:
Starting copy...
10000 rows sent to SQL Server. Total sent: 10000
SQLState = 22001, NativeError = 0
12406 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 75 Average : (165413.3 rows per sec.)
Но для экспорта bcp я не могу контролировать вывод, и для миллиона строк журнал становится слишком большим, например. приведенная ниже команда
bcp Temp.dbo.TestTable out outdata.txt -t , -f file.fmt -S Server -U user-P password -m 10
выводит это:
Starting copy...
1000 rows successfully bulk-copied to host-file. Total received: 1000
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]Warning: BCP import with a format file will convert empty strings in delimited columns to NULL.
1000 rows successfully bulk-copied to host-file. Total received: 2000
1000 rows successfully bulk-copied to host-file. Total received: 3000
1000 rows successfully bulk-copied to host-file. Total received: 4000
1000 rows successfully bulk-copied to host-file. Total received: 5000
1000 rows successfully bulk-copied to host-file. Total received: 6000
1000 rows successfully bulk-copied to host-file. Total received: 7000
1000 rows successfully bulk-copied to host-file. Total received: 8000
1000 rows successfully bulk-copied to host-file. Total received: 9000
1000 rows successfully bulk-copied to host-file. Total received: 10000
1000 rows successfully bulk-copied to host-file. Total received: 11000
1000 rows successfully bulk-copied to host-file. Total received: 12000
1000 rows successfully bulk-copied to host-file. Total received: 13000
1000 rows successfully bulk-copied to host-file. Total received: 14000
1000 rows successfully bulk-copied to host-file. Total received: 15000
1000 rows successfully bulk-copied to host-file. Total received: 16000
1000 rows successfully bulk-copied to host-file. Total received: 17000
1000 rows successfully bulk-copied to host-file. Total received: 18000
1000 rows successfully bulk-copied to host-file. Total received: 19000
1000 rows successfully bulk-copied to host-file. Total received: 20000
1000 rows successfully bulk-copied to host-file. Total received: 21000
1000 rows successfully bulk-copied to host-file. Total received: 22000
Я пытался передать переключатель -b
с помощью bcp out
, но он всегда экспортирует их пакетом из 1000, и фильтрация строк с помощью greping
или seding
займет слишком много времени. Спасибо за вашу помощь.
1000 rows successfully bulk-copied to host-file. Total received: 2000
, так как мы записываем вывод bcp в файл, а в некоторых случаях есть миллионы строк, поэтому файлы журнала становятся довольно большими, я хочу уменьшить размер файлов журнала, не влияя на производительность. бкп. - person Ashish Gaur   schedule 18.10.2013bcp
? У меня та же проблема с использованиемbcp
на машине с Linux, но у меня есть другой процесс на более старом сервере (только на год), который используетbcp
и не производит этот вывод. Оба используют Linux Centos7. - person lampShadesDrifter   schedule 02.08.2019