您如何确定现实世界中推荐的 ADO.NET 批量大小?
Posted
技术标签:
【中文标题】您如何确定现实世界中推荐的 ADO.NET 批量大小?【英文标题】:How do you determine the recommended ADO.NET Batch Size in the Real World? 【发布时间】:2010-12-12 10:30:08 【问题描述】:注意:我不是在寻找来自 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();
据我了解,这将在通过 Connection 对象将它们发送到服务器进行处理之前一次收集多达 50 个语句。
【问题讨论】:
【参考方案1】:您不需要设置此值。让它以默认值运行。只有当您的查询返回大量数据时才真正重要,例如BLOBS 在这种情况下,您可以选择较低的批量大小 ~10-20 对于正常使用,只需将其省略即可。我从来不需要设置它,我的所有应用都运行得非常快。
【讨论】:
以上是关于您如何确定现实世界中推荐的 ADO.NET 批量大小?的主要内容,如果未能解决你的问题,请参考以下文章
Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新,添加]
ADO.NET: 如何将一个DataTable中的行批量复制到另一个表中?
请教C#/.net高手,用ado.net访问mysq与访问sqlserver的区别主要在哪些地方?