在postgresql和SQL Server数据库之间移动数据的最佳方法是什么

时间:2011-06-06 12:21:54

标签: sql-server database postgresql data-migration

如果Postgresql和SQL Server上的数据库中有相同的数据库模式(表,主键,索引和触发器是相同的),那么将数据从一个数据库移动到另一个数据库的最佳方法是什么?目前,我们有一个内部.NET程序,通过两个ODBC连接执行以下操作:

  1. 从源数据库表1中读取一行
  2. 构造一个插入语句
  3. 将一行写入目标数据库表1
  4. 如果表格中有更多行,请转到1
  5. 转到数据库中的下一个表格并转到1
  6. 毋庸置疑:这是一个非常缓慢的过程,如果有更好/更快的解决方案,我会感兴趣吗?

2 个答案:

答案 0 :(得分:2)

如果是“一次性”迁移,你可以使用SQL Server的工具,它允许你在数据库之间移动数据(我现在不在Windows机器上,所以不能告诉你它叫什么 - 像导入/导出工具一样)。

如果是正在进行的同步,您可以查看MS Sync框架,它与SQL Server和Postgres配合使用。

答案 1 :(得分:1)

答案是批量导出和批量加载。通过使用PostgreSQL https://www.postgresql.org/docs/current/static/sql-copy.html中的copy命令以CSV格式转储表中的数据,然后在SQLServer Import CSV file into SQL Server中使用批量插入,可以更快地完成。一个经验法则是利用并行性来完成这个过程。检查是否可以将数据与CSV并行加载到SQL Server中,如果有多个表,则还可以在单​​独的表级别上具有并行性。顺便说一下,逐行加载或迁移数据是最慢的方法之一。