如果Postgresql和SQL Server上的数据库中有相同的数据库模式(表,主键,索引和触发器是相同的),那么将数据从一个数据库移动到另一个数据库的最佳方法是什么?目前,我们有一个内部.NET程序,通过两个ODBC连接执行以下操作:
毋庸置疑:这是一个非常缓慢的过程,如果有更好/更快的解决方案,我会感兴趣吗?
答案 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中,如果有多个表,则还可以在单独的表级别上具有并行性。顺便说一下,逐行加载或迁移数据是最慢的方法之一。