2010-06-09 50 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

回答