【发布时间】:2018-05-29 00:15:39
【问题描述】:
想知道使用有没有性能差异
SELECT Table1.*
FROM Table1
WHERE Col1 IN (SELECT Col2 FROM Table2)
与
SELECT Table1.*
FROM Table1 INNER JOIN Table2
ON Table1.Col1 = Table2.Col2
【问题讨论】:
-
后者一定比前者重复
(SELECT Col2 FROM Table2)每Table1行更好 -
我会说没有任何区别,因为您只是从 Table1 中选择。但是使用第二个查询,您可以从 Table2 返回列。不太清楚它在索引和读取等方面的含义
-
如果对性能有疑问,请检查 SQL Server Management Studio 中的实际查询计划。
-
@pfx 我没有我们 DBA 执行计划的权限
-
@asmgx 很抱歉,执行计划是查看查询影响的好工具,有助于编写更好的查询。更好的查询使 DBA 更快乐。应该说服他。
标签: sql sql-server performance select inner-join