1

背景:

  • NHibernate 1.2
  • C# 3.5 网络应用程序
  • 父子关联:A有一个B列表
  • 映射是标准的<bag>

我可以看到,使用 NHProf 和 SQL Server 分析器,NHibernate 为每个 B 发送一个 SQL 插入。

INSERT INTO B (a,b,c,d) VALUES (1,2,3,4);
INSERT INTO B (a,b,c,d) VALUES (4,5,6,7);
INSERT INTO B (a,b,c,d) VALUES (8,9,10,11);

我怎么能告诉它这样做:

INSERT INTO B (a,b,c,d) VALUES (1,2,3,4), (5,6,7,8), (9,10,11,12)
4

1 回答 1

0

我想我找到了答案。

  • 设置 adonet.batch_size
  • 使用 HiLo 生成器作为主键而不是自动递增

我仍然看到 individual INSERT,但是:

  • SQL Server Profiler 中的查询计数更少
  • NHProf 中不再有“SELECT scope_identity()”
于 2013-07-03T16:08:29.563 回答