如何将性能数据从一个数据库复制到另一个数据库?

时间:2016-01-13 09:30:47

标签: c# sql-server multithreading sqlbase

我有一个概念性的问题。

我有两个具有相同结构的数据库。一个数据库已经包含了大量数据。应通过SelectInsert将这些数据传输到其他数据库。

如何以最高性能执行此数据迁移?

我的第一种方法是对列表中的所有表进行排序,其中包含外键的表将存储在引用的表后面。但是使用这个解决方案,就不可能开始并行处理。

第二个想法是创建一个自定义类型,其中包含引用表的表名和表名,以及一个bool标志,用于存储表中的数据是否已被复制。为列表中的每个表存储此类型。然后我启动一个新的线程,在复制之前检查是否已经为每个表创建了引用的表。如果没有,我执行Thread.Sleep()之后我会再次检查。

这个问题是否表现良好?

任何建议都会有所帮助。

修改 旧数据库是SQL Base数据库。 新数据库是ms sql server数据库。

2 个答案:

答案 0 :(得分:2)

您可以使用:

1)SQL Server复制

或者 2)SQL Server Merge语句

您可以使用SQL Server链接服务器连接不同的数据库平台(例如sql server,mysql,db2,...)

答案 1 :(得分:0)

最佳建议:坚持使用SQLBase。 第二个最好的建议,通过SQLTalk使用SQLBase UNLOAD命令。这将写入重新创建数据库所需的所有DDL语句,其中包括触发器,存储过程,索引等,以及所有要加载的数据(如果使用正确的选项)到外部文件。如果需要以sql server格式(没有太大区别),则可以选择以编程方式编辑此文件。 UNLOAD命令有很多选项,这里没有详细说明,但这里是语法的链接。  enter image description here 请注意,最近几个月发布了SQLBase v12,性能提升了十倍。通过正确的调整和索引等。它在效率和性能方面将超过Sql Server。在100Gb数据库上,我们的响应时间从50秒变为3秒,无需额外工作。