У меня есть папки, в которые ежедневно поступает около 3000 новых CSV-файлов, каждая из которых содержит от 50 до 2000 строк информации.
В настоящее время существует процесс, который собирает эти файлы по одному, берет каждую строку по одной и отправляет их в хранимую процедуру для вставки содержимого в базу данных.
Это означает, что в течение дня может быть сложно пройти через 3000 файлов, прежде чем появятся следующие 3000!
Я стремлюсь улучшить этот процесс, и у меня были следующие идеи
- Используйте новую функцию Parallel в C # 4.0, чтобы разрешить одновременную обработку нескольких файлов, по-прежнему проходя по строкам одну за другой в сохраненный процесс
- Создать новую временную таблицу базы данных, в которую можно сразу вставить все строки в файле, а затем вызвать хранимую процедуру для вновь добавленных строк в временной таблице.
- Разделите процесс на 2 задачи. Одно задание для чтения данных из файлов во временную таблицу базы данных, другое для обработки строк во временной таблице.
Любые другие идеи о том, как я мог бы смотреть на это? В настоящее время для каждого файла может потребоваться до 20 секунд, и мне бы очень хотелось значительно повысить производительность.