2010-06-09 61 views
0

我們有一個服務器/單個數據庫應用程序使用NHibernate和Castle ActiveRecord,SQL Server位於它後面。NHibernate HiLo干預

作爲處理的一部分,我需要編寫多達120萬行的數據。使用ActiveRecord和NHibernate非常慢,需要改進 - 這可能很容易通過「insert into .. select .. from ..」來完成,可能在存儲過程中。

什麼讓我回到身份證代。我們使用HiLo一代。如果我編寫一個存儲過程來執行我所需的操作,我可以從數據庫表中獲取下一個要使用的編號,然後執行插入操作並更新表。問題是我不知道:

什麼號碼NHibernate的curently已經緩存 什麼其他的操作NHibernate的是做

我可以做的(我認爲)最好是請NHibernate的刷新其緩存當我從存儲過程返回時返回數字 - 或者返回存儲過程中使用的最後一個ID並更新HiLo緩存,但是我找不到任何引用來完成此操作。

任何想法?

+0

纔去沿着這條路,你有沒有嘗試設置adonet.batch_size? – 2010-06-09 12:59:25

回答