首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给BatchSize和不给BatchSize OracleBulkCopy有什么区别?

给BatchSize和不给BatchSize OracleBulkCopy有什么区别?
EN

Stack Overflow用户
提问于 2012-12-09 15:30:51
回答 1查看 2K关注 0票数 1

谁能给出使用BatchSize和不使用BatchSizeOracleBulkCopy中的性能和行为的区别吗?目前,我没有指定BatchSize。我的BatchSize可能在100到200000之间。请建议最好的方法。

代码语言:javascript
复制
try
{
     var columnMapping =
         from table in orgTable.Columns.Cast<DataColumn>()
         select
             new OracleBulkCopyColumnMapping(table.ColumnName, table.ColumnName);
     using (var bulkcopy
         = new OracleBulkCopy(ConnectionString, OracleBulkCopyOptions.Default))
     {                    
         bulkcopy.DestinationTableName = GoldOrgTable;                                        
         foreach (var mapping in columnMapping)
             bulkcopy.ColumnMappings.Add(mapping);
         bulkcopy.BulkCopyTimeout = TimeOut.Value;
         bulkcopy.WriteToServer(orgTable);
         orgTable.Dispose();
     }
     return true;
}
EN

回答 1

Stack Overflow用户

发布于 2012-12-09 15:53:17

最佳批次应设定在500~5000左右。

使用批量复制的好处是:

  • 增加插入db的性能(减少所需时间)
  • 用大量的插入(许多行插入)来操纵

然而,它也有一些我们需要关注的缺点:

  • 当大容量副本中有一行发生错误时,很难排除故障。
  • 可能不知道数据的插入或截断是否存在某种数据类型排序规则或转换问题(unicode和non),有些数据可能没有正确插入(脏数据),即使大容量复制过程已成功完成。

进一步讨论,您可以在以下网站找到它:01/OracleBulkCopyClass.htm#CHDCDEIABulk Insert to Oracle using .NET

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13788819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档