关于Oracle与SQL Server中数据迁移的办法
2014-05-23 09:50
197 查看
最近遇到一个需求,需要把Oracle中一部分表的数据迁移到SQL Server数据库中。但是这些表的结构是有些差异的。
方法一,使用SQL Develper的数据导出工具,导出SQL insert语句,然后再手动修改其中的一些细节,最后在放到SQL Server中执行。因为前后的表结构是有差异的,我需要一条一条语句的去删掉一些字段,然后再删掉一些值,几条或者几十条数据还行,这40万条数据,太多了,这个方法行不通。
方法二,使用C#代码。我用C#写了一个Data Migration的控制台小程序,把Oracle表中的所有数据读取到DataTable中,然后取出需要的字段,拼接成SQL语句,在使用C#代码写入到SQL Server数据库中。虽然这个方法完全自动化,可是遇到了性能了问题,因为Oracle与SQL Server数据库都不是本地的,都是在数据库服务器上的,取数据的时候还可以,但是插入数据的时候,很慢。以前用一个SqlConnection,接收到一条SQL语句的时候,new一个SqlCommand去执行,总共new了40万个SqlCommand.考虑到性能,就想用一个SqlCommand,设置一个循环,循环40万次,每次更改其Text字符串,但是我发现并没有太大的性能上的改善。然后想把40万条insert语句放入到一个字符串中,一下子到数据库中去执行。但是这个办法,执行了command.ExecuteNonquery之后,因为数据库非常大,会长时间没有反应,而且程序会抛出timeout
exception的异常。
方法三,既然不能用程序插入,那么我就用C#程序把数据导出,拼接成sql语句放入到文本文件中。因为是自己拼接的,可控性强,就不用像方法一中那样去更改了。然后打开SQL Server Management Studio,连接到远程数据库,执行这个SQL脚本文件就可以了,这样比C#代码插入快多了。
方法一,使用SQL Develper的数据导出工具,导出SQL insert语句,然后再手动修改其中的一些细节,最后在放到SQL Server中执行。因为前后的表结构是有差异的,我需要一条一条语句的去删掉一些字段,然后再删掉一些值,几条或者几十条数据还行,这40万条数据,太多了,这个方法行不通。
方法二,使用C#代码。我用C#写了一个Data Migration的控制台小程序,把Oracle表中的所有数据读取到DataTable中,然后取出需要的字段,拼接成SQL语句,在使用C#代码写入到SQL Server数据库中。虽然这个方法完全自动化,可是遇到了性能了问题,因为Oracle与SQL Server数据库都不是本地的,都是在数据库服务器上的,取数据的时候还可以,但是插入数据的时候,很慢。以前用一个SqlConnection,接收到一条SQL语句的时候,new一个SqlCommand去执行,总共new了40万个SqlCommand.考虑到性能,就想用一个SqlCommand,设置一个循环,循环40万次,每次更改其Text字符串,但是我发现并没有太大的性能上的改善。然后想把40万条insert语句放入到一个字符串中,一下子到数据库中去执行。但是这个办法,执行了command.ExecuteNonquery之后,因为数据库非常大,会长时间没有反应,而且程序会抛出timeout
exception的异常。
方法三,既然不能用程序插入,那么我就用C#程序把数据导出,拼接成sql语句放入到文本文件中。因为是自己拼接的,可控性强,就不用像方法一中那样去更改了。然后打开SQL Server Management Studio,连接到远程数据库,执行这个SQL脚本文件就可以了,这样比C#代码插入快多了。
相关文章推荐
- SQL Server到Oracle的数据迁移
- 从Sql Server迁移数据到Oracle
- SQL SERVER 2000/2005/2008数据库数据迁移到Oracle 10G细述
- SQL SERVER 2000/2005/2008数据库数据迁移到Oracle 10G细述
- 从SQL Server向Oracle迁移的技术实现方案(一)数据类型的迁移
- 关于ssdcrm老系统数据迁移到新系统的系列实施办法
- 数据迁移,Oracle,Mysql,Sql server,数据库数据传输
- 关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究
- Java C/S开发案例一:SQL Server到Oracle数据迁移工具的开发(NetBeans 版)
- SQL SERVER数据迁移到ORACLE
- 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化
- Oracle与SQL Server之间的数据迁移
- 关于安装SQL SERVER时出现“某个程序安装已在安装计算机上创建挂起的文件操作”的解决办法
- 从Oracle迁移到SQL Server的陷阱
- 从ORACLE向SQL SERVER定时迁移实现
- 从SQL SERVER 向ORACLE 8迁移的技术实现方案——转摘
- C#与SQL Server之间的数据类型对比及在VS2003中空值传递的解决办法
- C#与SQL Server之间的数据类型对比及在VS2005中空值传递的解决办法
- 关于无法安装sql server的解决办法
- C#与SQL Server之间的数据类型对比及在VS2003中空值传递的解决办法(下)