Производительность SqlBulkCopy

Я работаю над повышением производительности насыпных грузов; 100 миллионов записей + ежедневно.

Я переместил это, чтобы использоватьIDatareader интерфейс вместо таблиц данных и получил заметное повышение производительности (500 000 записей в минуту). Текущая настройка:

Пользовательский кэшированный читатель для анализа файлов с разделителями.Оборачивание считывателя потока в буферный поток.Пользовательский класс чтения объектов, который перечисляет объекты и реализуетIDatareader интерфейс.затемSqlBulkCopy пишет на сервер

Большая часть горлышка бутылки производительности находится непосредственно вSqlBulkCopy.WriteToServer, Если я тестирую процесс до, но исключая толькоWriteToServer процесс возвращается примерно через 1 минуту.WriteToServer занимает дополнительные 15 минут +. Для модульного теста он находится на моей локальной машине, поэтому тот же диск, на котором живет база данных, не требует копирования данных по сети.

Я использую таблицу кучи (без индексов; кластеризована или некластеризована; я работала с пакетами разных размеров без существенных различий в производительности).

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

Ответы на вопрос(1)

Ваш ответ на вопрос