在链接服务器

时间:2015-12-02 20:33:22

标签: sql sql-server oracle linked-server openquery

我使用openquery从本地SQL Server实例查询链接的Oracle服务器。问题是我想在链接实例中执行时限制基于本地数据库中的表(大约10k行)返回的结果。通常情况下我会反过来做一些事情,如:

SELECT * 
FROM OPENQUERY(DBlinked, 'SELECT…') link_serv
    INNER JOIN localdb.table1 local_1 
    ON local_1.column_1 = link_serv.column_1 

但是由于在openquery(具有100百万行的多个表)中针对整个数据集执行的链接表的大小,然后使用连接在本地进行子设置不是一个好主意。

我试图在openquery中引用本地服务器,但由于该表位于本地文件上,因此无法找到该表,并且我没有对链接服务器的写权限,因此移动本地表转到链接服务器会有问题。

有关如何在所有连接之前限制结果的任何指导将不胜感激。使用openquery不是必需的 - 它只是我找到的唯一优雅解决方案,用于处理针对大型链接表的资源密集型查询。
基本上我要做的是

SELECT * FROM OPENQUERY(oracleDB, '
    SELECT * 
    FROM dbo.table1 Ot
INNER JOIN Local_SQLServ.DB1.DBO.Table1 St
ON St.Column1 = Ot.column1’)

0 个答案:

没有答案