在谷歌搜索并查看链接服务器上的 MS 文档 ( http://msdn.microsoft.com/en-us/library/ms188279.aspx ) 后,我仍然无法得到以下问题的明确答案。我正在考虑链接 2 个 SQL Server,以便可以从源数据库创建数据子集并将其插入输出数据库(在插入之前进行重复检查),但我不知道 MSSQL 如何处理使用链接数据库的查询。
据我所知,以下查询将导致 LocalServer 下载 FarAwayTable 然后在本地执行查询(在我的情况下这会影响性能):
SELECT
f.*
FROM
FarAwayServer.FarAwayDB.dbo.FarAwayTable f,
LocalServer.LocalDb.dbo.LocalTable l
WHERE
f.ID = l.ID
我的问题是,MSSQL 会为以下查询做同样的事情,还是只下载结果(在 FarAwayServer 上执行整个查询):
SELECT
*
FROM
FarAwayServer.FarAwayDB.dbo.FarAwayTable f
WHERE
f.ID = 1