WedX - журнал о программировании и компьютерных науках

Лучшая производительность для загрузки 6,5 миллионов записей из плоского файла в место назначения OleDb (например, в таблицу базы данных).

Сценарий

Я использую Visual Studio 2019 для загрузки данных из плоских файлов (файлов txt) в таблицы базы данных SQL Server 2019. Это промежуточные столы.

У меня есть 10 текстовых файлов, и мне нужно создать один пакет для каждого файла для загрузки данных в 10 разных таблиц (постановка), предназначенных для каждого файла.

Это требование моей задачи.

Я умею делать это успешно. Все пакеты имеют довольно быстрое время выполнения, кроме одного, в котором текстовый файл содержит около 6,5 миллионов записей, а время выполнения пакета для загрузки данных в таблицу базы данных составляет 2 минуты 30 секунд.

Для этой задачи я использовал задачу потока данных, которая содержит:

  1. Источник плоского файла — содержит файл, из которого должны быть загружены данные.
  2. Назначение OLE DB — для таблицы базы данных, в которую должны быть загружены данные. (прикрепленный скриншот для справки)

введите здесь описание изображения

Чего я хочу достичь?

Я хочу улучшить производительность этого пакета, чтобы максимально сократить время выполнения.


  • Я попытался использовать Balanced Data Distributor, и теперь истекшее время составляет 50 секунд. Но мне пришлось создать 30-32 ветки для назначения OLE DB, что неудобно. Должен быть лучший способ сделать это. Пожалуйста, порекомендуйте. 17.12.2020

Ответы:


1

Если вы хотите вставить плоский файл в таблицу SQL Server без какого-либо преобразования. Вы можете использовать задачу SSIS BULK INSERT. Или просто вы можете использовать команда SQL BULK INSERT. Пример:

BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail
   FROM 'f:\orders\items.csv'
   WITH
      (  
         FIELDTERMINATOR =';'
         , ROWTERMINATOR ='\n'
      );
17.12.2020

2

Большое спасибо за ваши советы и предложения. Это очень помогло мне.

Я выполнил итерации для различных комбинаций свойств потока данных, таких как DefaultBufferSize, DefaultBufferMaxRows и количества путей вывода из «Сбалансированного распределителя данных» (скриншот прилагается). Теперь пакет выполняется за 15 секунд. введите здесь описание изображения

19.12.2020
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]