Я пытаюсь найти наиболее эффективный способ запуска нескольких (> 1000) операторов вставки с помощью NHibernate.
Фактическая инструкция вставки очень проста, поскольку она использует идентификатор FK из вновь созданного объекта вместе сзначения из подзапроса.Вот что я написал бы в SQL:
insert into dbo.NotificationView
select
1 AS IDOfNewItem,
U.Id AS UserID,
0 AS HasEdited
from
[User] U
INNER JOIN UserSite US ON U.Id = US.UserId
where
US.SiteId = 1
Я видел, что есть параметр с именем adonet.batch_size
( NHibernate: вставка нескольких элементов одновременно ), который можно установить вXML-файл "hibernate-configuration", но создается впечатление, что он просто создаст то же число операторов insert
, что и объектов.
Существует ли способ выполнить вставку за один раз, без итерациикаждый элемент?
Если так, это как-то отрицательно влияет на кеш?