加入链接服务器或加入主机服务器?

时间:2008-12-18 14:21:58

标签: sql sql-server-2005 oracle join linked-server

情况就是这样:我们需要连接一个Oracle数据库来提取一些数据。由于访问所述Oracle数据库是一个真正的痛苦(主要是官僚主义障碍),我们只是计划将其链接到我们的SQL Server并使用链接来访问我们需要的数据。

对于我们的某个应用程序,我们计划制作一个视图以获取所需的数据。现在我们需要的数据来自两个表。如果我们这样做,那会更好吗?

这(如果存在这样的事情,则在伪SQL中):

 OPENQUERY(Oracle, "SELECT [cols] FROM table1 INNER JOIN table2")

或者这个:

 SELECT [cols] FROM OPENQUERY(Oracle, "SELECT [cols1] FROM table1")
 INNER JOIN OPENQUERY(Oracle, "SELECT [cols2] from table2")

有什么理由比较喜欢一个吗?需要记住的一件事是:我们对查询可以运行多长时间来限制访问Oracle服务器。

3 个答案:

答案 0 :(得分:3)

我会使用您的第一个选项,特别是如果您的查询包含where子句以选择表中数据的子集。

假设Oracle服务器中支持连接操作的表有索引,那么两台服务器上的工作量就会减少。

答案 1 :(得分:2)

如果内部联接显着减少了总行数,那么选项1将导致更少的网络流量(因为您不会让table1中的所有行都必须通过数据库链接

答案 2 :(得分:2)

hamishmcn说的适用。

同样,SQL Server并不真正了解oracle服务器保存的索引或统计信息或缓存。因此,oracle服务器可以使用连接执行比sql server更高效的工作。