将数据从Oracle数据库获取到SQL Server

时间:2015-01-09 15:48:12

标签: sql-server database oracle sql-server-2012

我是SQL Server数据库开发人员。我们当前要求我们需要将我们的产品与客户的现有应用程序相关联。我们的产品具有SQL Server 2012数据库,而客户端的现有应用程序使用Oracle 11g。由于项目完成的时间限制有限,我们无法将我们的应用程序迁移到Oracle。

要求是我们必须从Oracle数据库获取客户详细信息,以便在我们的系统中进行计费活动。

所以我经历了一些链接,发现SQL Server链接服务器可以用来做到这一点。我已成功创建了一个视图,该视图使用链接服务器使用Oracle数据库中的Customer表。它将解决我们的问题。

现在我的问题是:

  • 除链接服务器外,还有其他更好的解决方案吗?
  • 使用链接服务器时是否有任何缺点?

提前致谢

1 个答案:

答案 0 :(得分:2)

需要考虑的一个缺点是您的视图过滤可能发生在"您的"结束,而不是在Oracle中。例如如果您有一个链接服务器(使用,例如,OPENQUERY语句)和基于此的视图,您可以这样做:

select id from myView where id = 4711

期望结果非常快(假设id被编入索引等等),那么你可能会感到震惊,因为实际发生的是:

  • 将Oracle表的全部内容传递给SQL Server
  • SQL Server然后过滤此数据,即不能推送过滤 向下"进入视图对象(因为它们是远程的)。

NB :我知道有两种方法可以定义链接服务器(openquery和另一种,我忘了细节),所以这可能并不总是适用,但你应该是意识到潜在的性能损失。