NHibernate-HiLo干预

NHibernate-HiLo干预,nhibernate,activerecord,Nhibernate,Activerecord,我们有一个使用NHibernate和Castle ActiveRecord的单服务器/单数据库应用程序,SQL server位于其后面 作为处理的一部分,我需要写入多达120万行的数据。使用ActiveRecord和NHibernate的速度非常慢,需要改进-这可以通过在存储过程中使用“insert-into..select..from..”轻松完成 阻碍我前进的是身份证一代。我们使用HiLo生成。如果我编写了一个存储过程来执行我需要的操作,那么我可以从数据库表中获取下一个要使用的数字,执行in

我们有一个使用NHibernate和Castle ActiveRecord的单服务器/单数据库应用程序,SQL server位于其后面

作为处理的一部分,我需要写入多达120万行的数据。使用ActiveRecord和NHibernate的速度非常慢,需要改进-这可以通过在存储过程中使用“insert-into..select..from..”轻松完成

阻碍我前进的是身份证一代。我们使用HiLo生成。如果我编写了一个存储过程来执行我需要的操作,那么我可以从数据库表中获取下一个要使用的数字,执行insert,然后更新表。问题是我不知道:

NHibernate当前缓存了多少个 NHibernate的其他业务是什么

我所能做的最好的事情(我想)是,当我从存储过程返回时,请NHibernate刷新其缓存的数字,或者返回从存储过程使用的最后一个ID并更新HiLo缓存,但我找不到任何这样做的参考


有什么想法吗?

如果没有,请考虑使用无状态会话并设置批处理大小。这两种方法都将大大加快批量数据处理的速度


在执行此操作之前,您是否尝试过设置adonet.batch\u大小?