2010-01-20 46 views
3

我试图将大约16000个记录插入到一​​个表中。因为这很慢,所以我想批量插入它们。但是,当我尝试执行此操作时,我总是遇到超时错误。所以我有两个问题:在批量插入期间流利的NHibernate命令超时

  1. 什么是加快插入的最佳方法?
  2. 如何增加连接的超时值?
+0

你使用无状态会话吗? – 2010-01-20 21:06:31

+0

什么是无状态会话? (我对Fluent和NHibernate非常陌生)。 – 2010-01-20 21:17:17

回答

5

首先你必须使用无状态会话。而不是调用OpenSession(); (在会话工厂),你调用OpenStatelessSession();它与普通会话有很多相同的API,但没有缓存和内容(对于数据操作来说更快)。然后,您需要通过调用.AdoNetBatchSize([[batch size]])来设置批量大小。在您的配置中设置数据库的位置。

这可能会诀窍。但是你应该知道这不是传递nhibernate(或任何其他的orm)的内容,所以不要指望任何类型的性能。

+1

嗯,它花了20多分钟(我从来没有让它完全完成)。使用这种方法只需要几秒钟。谢谢! – 2010-01-20 21:53:31

+0

太好了。很高兴我能帮上忙。 – 2010-01-20 21:57:31