Уже не первый год пользуюсь своим универсальным конвертером CSV файлов в БД SQL Server - ImportExportDataSql, который имеет ряд полезных функций, необходимых любому разработчику БД MSSQL, например: перенос данных с одной БД в другую через SQL скрипт, выгрузка структуры БД, загрузка/выгрузка файлов (с типом varbinary), объединение SQL выборок в один файл и др.
ImportExportDataSql бесплатный, портативный, без рекламы и оповещает об обновлениях.
Поставил себе цель, ускорить загрузку CSV в БД MSSQL быстрее, чем это делает стандартная утилита "bcp". В моем приложении используется стандартный способ чтения CSV файлов, через System.IO.StreamReader методом ReadLine, но я уверен, что стандартные способы не самые производительные.
Итак, сравним несколько библиотек, написанных на языке C#, которые читают CSV файлы и разбивают строку на массив строк (колонки). Результаты тестов будут складываться по нескольким параметрам: время выполнения, потребление оперативной памяти, средняя нагрузка CPU (%).
Подробные результаты тестов, а также исходники для тестирования описанных способов, приведены в конце статьи.