我有一张表,目的是持有id's.
我想从其他表(数百万条记录的大表)中选择许多记录。
哪一个会胜过:
SELECT id, att1, att2
FROM myTable
WHERE id IN (SELECT id FROM @myTabwithIDS)
或
SELECT id, att1, att2
FROM myTable t
INNER JOIN @myTabwithIDS t2
ON t2.id = t.id
答案 0 :(得分:1)
我会使用SQL Server内置的查询分析器来探索执行计划。
http://www.sql-server-performance.com/2006/query-analyzer/
专门启用“显示执行计划”和“统计IO和时间”。
通常,连接比子查询更好,特别是在外部查询条件取决于子查询的结果(称为相关子查询)的情况下。有关详细信息,请参阅Subqueries vs joins。