如何确定真实世界中推荐的ADO.NET批量大小?

Bre*_*tra 6 nhibernate ado.net fluent-nhibernate

注意:我不是在寻找MSDN的答案.

您是如何为给定的数据库/应用程序确定正确的ADO.NET批处理大小值的?哪些因素导致您的决定以及您可以分享哪些经验?

使用Fluent NHibernate,我目前正在使用类似的东西:

var sessionFactory = Fluently.Configure().Database(
             MsSqlConfiguration.MsSql2005.ConnectionString(c => c.FromConnectionStringWithKey("connString"))
             .AdoNetBatchSize(50)
             )
             .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Foo>()).BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

根据我的理解,在将它们通过Connection对象发送到服务器进行处理之前,这将一次最多收集50个语句.

rea*_*ers -1

您不需要设置该值。让它以默认值运行。仅当您的查询返回大量数据(例如 BLOBS)时,这才真正重要,在这种情况下,您会选择一个低批量大小 ~10-20 对于正常使用,只需将其保留。我从来不需要设置它,而且我所有的应用程序都运行得非常快。