2010-01-20 45 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