Я взаимодействую с базой данных PostgreSQL с помощью NHibernate.
Фон
Я сделал несколько простых тестов... кажется, сохранение 300 записей занимает 2 секунды. У меня есть программа на Perl с идентичной функциональностью, но вместо этого прямой SQL занимает всего 70% времени. Я не уверен, ожидается ли это. Я думал, что C#/NHibernate будет быстрее или, по крайней мере, на одном уровне.
Вопросы
Одно из моих наблюдений заключается в том, что (с включенным show_sql
) NHibernate выдает INSERT несколько сотен раз вместо массового INSERT, который заботится о нескольких строках. И обратите внимание, я сам назначаю первичный ключ, а не использую «родной» генератор.
Это ожидается? Могу ли я в любом случае заставить его вместо этого выдавать массовый оператор INSERT? Мне кажется, что это может быть одна из областей, где я мог бы ускорить работу.
copy from
вместоinsert
, он, скорее всего, будет работать на порядок быстрее. Это может быть то, что делает программа perl. - person nate c   schedule 06.01.2011