用于批量传输的 MySqlDataAdapter 或 MySqlDataReader? [英] MySqlDataAdapter or MySqlDataReader for bulk transfer?

查看:138
本文介绍了用于批量传输的 MySqlDataAdapter 或 MySqlDataReader?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用适用于 .NET 的 MySql 连接器将数据从 MySql 服务器复制到 SQL Server 2008.

I'm using the MySql connector for .NET to copy data from MySql servers to SQL Server 2008.

有没有人使用以下一种方法获得更好的性能?

Has anyone experienced better performance using one of the following, versus the other?

  • DataAdapter 并以 500 个块为单位调用 Fill 到 DataTable
  • DataReader.以 500 次循环读取到数据表

然后我使用 SqlBulkCopy 加载 500 个 DataTable 行,然后继续循环直到 MySql 记录集完全传输.

I am then using SqlBulkCopy to load the 500 DataTable rows, then continue looping until the MySql record set is completely transferred.

我主要关心的是使用合理的内存量并在短时间内完成.

I am primarily concerned with using a reasonable amount of memory and completing in a short amount of time.

任何帮助将不胜感激!

推荐答案

我在处理大量数据时使用了 SqlBulkCopy 和 DataReader.我发现这个过程在速度和内存使用方面非常有效,因为在复制之前不会检索整个数据集.我建议将 BatchSize 属性设置为某个合理的值,例如在您的情况下为 500.

I've used SqlBulkCopy with DataReader when processing large amounts of data. I’ve found the process to be quite efficient in terms of speed and memory usage, since the entire data set is not retrieved before copying. I recommend setting the BatchSize property to some reasonable value, say 500 in your case.

这篇关于用于批量传输的 MySqlDataAdapter 或 MySqlDataReader?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆