小编xyz*_*zzy的帖子

SQL Server INNER REMOTE JOIN 返回的行数比 INNER JOIN 多

我正在尝试将远程视图中的几行加入本地表。该视图有大约 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)

开始返回数千行。几秒钟后我退出了它,但它是数万 - 数十万。

查询提示如何更改我的结果集?

sql-server hints sql-server-2008-r2

7
推荐指数
2
解决办法
1408
查看次数

标签 统计

hints ×1

sql-server ×1

sql-server-2008-r2 ×1