2015-06-11 2 views
0

Я подключаюсь к PostgreSQL, используя npgsql. В это время, я заполняю таблицу в базе данных вручную генерировать тысячи заявлений INSERT с несколькими записями данных как

INSERT INTO tablename (field1, field2) VALUES (1, "a"), (2, "b"), (3, "c") ...+ 1000 records;

и положить их в NpgsqlCommand.

Как это можно сделать более эффективным способом? Я слышал о хранимых процедурах и вставках BULK, но хороший пример очень нужен.Лучший способ заполнить таблицу данными с помощью npgsql

ответ

1

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)