子查询或OUTER连接

时间:2011-08-11 09:22:17

标签: sql sql-server tsql

哪一个有更好的表现?

SELECT *,(SELECT MAX(old) FROM employee WHERE employee.CompanyId = Company.Id)
    FROM Company

SELECT *,MAX(old) FROM Company LEFT OUTER JOIN employee
        ON Company.Id = employee.CompanyId

how about bigger queries ?

谢谢

3 个答案:

答案 0 :(得分:3)

在SQL Server Management Studio中运行两个查询并查看execution plan

执行计划不仅会告诉您查询的哪个部分占用了多少资源,而且还会告诉您哪两个查询占用的资源多于另一个(如果同时运行两者,执行计划会以百分比显示值)

答案 1 :(得分:2)

如果您知道如何read execution plans那么请看一下。一个猜测是,SQL Server无论如何都会优化同一个执行计划的查询。

答案 2 :(得分:1)

子查询的性能通常低于JOIN查询。