Производительность SqlBulkCopy
Я работаю над повышением производительности насыпных грузов; 100 миллионов записей + ежедневно.
Я переместил это, чтобы использоватьIDatareader
интерфейс вместо таблиц данных и получил заметное повышение производительности (500 000 записей в минуту). Текущая настройка:
IDatareader
интерфейс.затемSqlBulkCopy
пишет на серверБольшая часть горлышка бутылки производительности находится непосредственно вSqlBulkCopy.WriteToServer
, Если я тестирую процесс до, но исключая толькоWriteToServer
процесс возвращается примерно через 1 минуту.WriteToServer
занимает дополнительные 15 минут +. Для модульного теста он находится на моей локальной машине, поэтому тот же диск, на котором живет база данных, не требует копирования данных по сети.
Я использую таблицу кучи (без индексов; кластеризована или некластеризована; я работала с пакетами разных размеров без существенных различий в производительности).
Необходимо сократить время загрузки, поэтому я надеюсь, что кто-то может теперь выжать немного больше крови из этого набора.