如何使用IBatcher inOleDB驱动程序改进NHibernate批量插入

时间:2013-06-26 00:57:04

标签: java .net hibernate nhibernate fluent-nhibernate

我使用OleDB连接到我的DB2服务器。

我有很多擅长插入我的数据库,每个人至少有700k行...是的...

所以,我试图用StatelessSession做一些事情,效果很好,但需要花费很多时间......用1k行运行20分钟,或多或少......

那很糟糕......太糟糕了......我听说过adonet.batch_size属性,但它不适用于DB2或OleDB驱动程序。

所以,我也听说过,我们可以使用IBatcher手动接近,但是如果能做到这一点,那么任何人都可以给我一些完整的样本吗?比如,创建这个Batcher类的简单方法,并改进下面的示例(我的工作代码)...

或者,如果有任何其他方法可以改善此查询... =(我每个连接运行1k行... idk wut to do ... =(

先谢谢你们!

亲切的问候!

var stopwatch = new Stopwatch();
            var counter = 0;
            stopwatch.Start();

            using (var statelessSession = BLL.Connector.SessionFactory.OpenStatelessSession())
            using (var transaction = statelessSession.BeginTransaction())
            {
                foreach (Entites.SapDetail detail in this.details)
                {
                    statelessSession.Insert(detail);

                    counter++;
                }

                transaction.Commit();
                this.details.Clear();
            }

            stopwatch.Stop();
            var time = stopwatch.Elapsed;

0 个答案:

没有答案