Утилиты Bcp - как импортировать миллиард записей. DAT файл на сервере SQL - PullRequest
0 голосов
/ 31 октября 2018

На самом деле у нас есть плоский файл с миллиардом записей для вставки в SQL-сервер. Мы пытались bcp выполнить его больше раз или завершиться с ошибкой в ​​середине процесса. Не могли бы пожалуйста совет по этому вопросу !!!!

1 Ответ

0 голосов
/ 06 ноября 2018

Некоторые вещи, которые следует учитывать при перемещении больших объемов данных в / из SQL Server (на самом деле, на любой сервер данных).

  1. Если вы можете разбить файл на части и загрузить их. Скорее всего, вы не используете или почти не напрягаете ресурсы SQL Server в целом, и большая продолжительность копии BCP открывает вам возможность для любого прерывания в общении. Итак, разбейте файл на части и загрузите на части асинхронно (максимально безопасно) или загрузите 2, 4 или 10 частей файла одновременно ... посмотрите, сможете ли вы вытащить администратора базы данных из их кресла:).
  2. Если вы можете поместить файл с локального диска на SQL Server. Избегайте возможных перебоев в работе сети / хранилища. ППГ не прощает перерыв в общении.
  3. Устранить любую индексацию в таблице назначения. ПП в тупой, кучу, пустой, скучный стол. Избегайте каких-либо дополнений и, если можете, используйте столбцы char / varchar (исключая также затраты на конверсию).
  4. Вы можете настроить размер пакета, который BCP будет ставить в очередь перед записью в SQL Server. По умолчанию 1000, но вы можете увеличить его до 100 000 и более. Проведите некоторое тестирование, чтобы увидеть, что работает лучше для вас. С большей партией вы сэкономите немного времени, меньше касаясь физического диска (это зависит и от многих других вещей, тоже).
  5. Если файл необходимо перенаправить через nework, вы также можете настроить размер сетевого пакета. Поиск помощи по расчету вашего идеального размера пакета.
  6. Существуют и другие доступные варианты, но, как утверждают другие, без подробностей вы не можете получить целевой ответ.

Поделитесь своей командой bcp. поделиться структурой файла. поделитесь информацией о таблице, в которую вы входите. Распределенная среда (SQL Server и файл bcp?), Любая сеть задействована? Сколько записей в секунду вы получаете? Файл широкий или узкий? Насколько широкий файл? 1 миллиард записей из 5 целочисленных столбцов - это не так уж много данных. Но 1 миллиард записей шириной 2000 байт ... это чудовище!

...