Я подключаюсь к PostgreSQL, используя npgsql. В это время, я заполняю таблицу в базе данных вручную генерировать тысячи заявлений INSERT с несколькими записями данных как INSERT INTO tablename (field1, field2) VALUES (1, "a"), (2, "b"), (3, "c") ...
+ 1000 records
;
и положить их в NpgsqlCommand
.
Как это можно сделать более эффективным способом? Я слышал о хранимых процедурах и вставках BULK, но хороший пример очень нужен.Лучший способ заполнить таблицу данными с помощью npgsql
ответ
PostgreSQL включает в себя функцию копирования для загрузки больших объемов данных: http://www.postgresql.org/docs/9.4/static/sql-copy.html
Npgsql выставляет COPY в API. Однако следующая основная версия Npgsql, 3.0, все еще находится в стадии бета-тестирования, и мы полностью переделали поддержку COPY для нее. Таким образом, было бы неплохо составить код для 2.2 COPY API, только чтобы скоро перейти от него. Если у вас все в порядке с бета-версией, перейдите с 3.0, иначе подождите несколько недель, пока он не будет выпущен.
Npgsql 2.2 КОПИРОВАНИЯ API: https://github.com/npgsql/npgsql/wiki/User-Manual (поиск "Fast сыпучие копирования данных в таблицу")
Npgsql 3.0 КОПИРОВАНИЯ API: http://npgsql.github.io/npgsql/doc/copy.html (временный URL-адрес, который изменится на http://www.npgsql.org/doc/copy.html)