sql - JOIN 在另一台数据库服务器上的表上与 JOIN 在另一台服务器上的表上的 SELECT

标签 sql sql-server

我很好奇在驻留在另一个 SQL Server 实例上的表上进行 JOIN 与在另一个服务器实例的同一表的子集上进行 JOIN 之间是否存在任何性能差异。换句话说,以下两个查询的性能是否相同:

SELECT t1.CustomerName, t2.Address, t2.Phone 
FROM Table1 t1
LEFT JOIN [Server X].dbo.Table2 t2 on t2.CustomerID = t1.CustomerID

SELECT t1.CustomerName, t2.Address, t2.Phone
FROM Table1 t1
LEFT JOIN (SELECT CustomerID, Address. Phone FROM [Server X].dbo.Table2) 
t2 
on t2.CustomerID = t1.CustomerID

我们可以假设 Table2 包含的不仅仅是这两列。我想知道仅选择我需要的列与连接整个表是否会产生任何差异,特别是考虑到这是一个跨服务器查询。

最佳答案

我不确定,但在没有测试的情况下,在我看来 SQL 会执行相同的操作。如果您有 SQL Server Management Studio 并运行执行计划,您可以检查一下。

我相信如果内部选择更复杂的话,top 会更有效率(因为它在同一台服务器上)。这真的取决于优化器。

关于sql - JOIN 在另一台数据库服务器上的表上与 JOIN 在另一台服务器上的表上的 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362959/

相关文章:

SQL 复杂约束

php - 这个 MySQL 查询有什么问题吗?

sql - SQL 查询内部如何执行 IN 表达式?

sql - 根据价格和类别选择产品-SQL请求

sql - 使用 SQL Server FILESTREAM GUID 作为主键

sql-server - 如何为联合结果添加排序依据?

sql-server - 如何通过 SQL Server xp_cmdshell 在 Windows 命令 shell 中根据创建日期加载文件

c# - 使用 EF6 和 Mysql 数据库的存储过程映射

sql - 范围身份与当前身份

SQL Server XQuery 修改