我正在尝试将远程视图中的几行加入本地表。该视图有大约 3 亿行,所以我想使用 REMOTE 查询提示,以便不必将所有 300 万行传输到我的计算机。
SELECT R.Something, L.ID, L.Something
FROM [dbo].[LocalTable] L
INNER JOIN (
SELECT TOP 100 Something, L_ID FROM [RemoteServer].[RemoteDB].[dbo].[RemoteTable]
) R
ON L.ID = R.L_ID
Run Code Online (Sandbox Code Playgroud)
正如我所料,这将返回 100 行,并且基本上不需要时间,正如我所料。
然而,
SELECT R.Something, L.ID, L.Something
FROM [dbo].[LocalTable] L
INNER REMOTE JOIN (
SELECT TOP 100 Something, L_ID FROM [RemoteServer].[RemoteDB].[dbo].[RemoteTable]
) R
ON L.ID = R.L_ID
Run Code Online (Sandbox Code Playgroud)
开始返回数千行。几秒钟后我退出了它,但它是数万 - 数十万。
查询提示如何更改我的结果集?