SQL数据库迁移 - 性能问题(将数据从一个数据库复制到另一个数据库)

时间:2011-11-16 11:59:19

标签: sql winforms performance sql-server-2008 progress-bar

我创建了Windows应用程序(C#.Net)来将数据从一个数据库迁移到另一个数据库。 在这里,我从Database ABC中选择所有客户表行,并将所有行插入数据库XYZ的Dealers表。

我的问题是,当我从表中选择前1000行时,插入这1000条记录需要2分钟和35秒。 但是当我从表中选择前5000行时,需要15分钟(不是10分钟)来插入这5000条记录

有没有办法优化性能,以便我可以非常快速地插入所有记录/数据。 (注意:这里为foreach循环中的每个记录,我创建了sqlparameter并插入了sql语句)

我也使用了进度条,但是当我从我的Windows应用程序失去焦点时,它变得无响应(没有响应为窗口标题),我看不到进度条的状态/进度(但是插入数据的过程)正在后台工作,但在UI中工作。)

如何解决这两个问题?

1 个答案:

答案 0 :(得分:0)

你可以为100条记录创建单个sql命令并触发它,而不是单个sql命令用于单个记录,这将作为批量运行。

http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/12/05/sql-server-2008-t-sql-insert-multiple-rows.aspx

对于进度条,您可以使用线程进行更新。

http://msdn.microsoft.com/en-us/library/ms951089.aspx