【发布时间】:2011-12-29 05:51:40
【问题描述】:
如果我想同时查询 Oracle 和 SQL Server 数据,我正在尝试找出我有哪些选项。
这是场景:
Oracle 数据库包含数据集 A SQL Server 数据库包含数据集 B、C、D
我需要获取数据集 A 并将其分别与 B、C 和 D 连接,以生成某些结果和计数。
目前的解决方案:
- 查询 Oracle,将数据导出到 SQL Server 插入语句中。
- 在 SQL Server Management Studio 中运行我从 Oracle 生成的 SQL Server 插入语句,以将数据插入到临时表中
- 根据需要将临时表与数据集 B、C 和 D 结合起来
我正在寻找对数据库造成最少调用和工作量的解决方案。
编辑:我忘了提到链接服务器或任何更改服务器配置的东西都是不允许的。
【问题讨论】:
-
它是否需要仅作为数据库解决方案或借助代码?如果是后者,您使用的是什么技术(例如 .NET)?在 .NET 中,您可以使用不同的连接字符串来填充不同的数据集并通过 LINQ-To-DataSet 连接它们。
-
我正在使用 .net。所以,你的评论和 xQbert 给我的链接......我可以查询 Oracle 并将我的数据存储到 DataSetA,然后查询 SQL 服务器 3 次并存储到 DataSetB、DataSetC 和 DataSetD。然后使用 linq 加入数据集?这会导致只有 4 次数据库调用,并且所有 DataSet 连接部分都将发生在内存中吗?
-
你说的数据量是多少?您是否考虑过从 Oracle 中选择一个文件,批量复制到 SQL Server 表中,然后加入该文件?您不需要很多行就比生成 INSERT 语句更好。
-
@metanaito:是的,那是我的想法。理想情况下,您只需要两个查询(每个 dbms 一个)和两个数据集即可将它们加载到内存中。
join/group/sum等。会发生在记忆中。但是xQbert建议LINQ-To-SQL和LINQ-To-Datasets不一样。
标签: sql-server