2

我有一个概念问题。

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

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

我的第一种方法是对列表中的所有表进行排序,其中包含外键的表将存储在引用表的后面。但是使用此解决方案将无法启动并行处理。

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

有没有很好的方法来解决这个问题?

任何建议都会有所帮助。

编辑: 旧数据库是 SQL Base 数据库。新数据库是一个 ms sql server 数据库。

4

2 回答 2

2

您可以使用:

1) SQL Server 复制

或者 2) SQL ServerMerge语句

您可以使用 SQL Server Linked Servers 连接不同的数据库平台(例如 sql server、mysql、db2...)

于 2016-01-13T11:21:38.637 回答
0

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

于 2016-01-14T09:33:56.877 回答