【发布时间】:2014-11-18 03:20:31
【问题描述】:
我最近注意到,与一个接一个地执行这些连接相比,执行具有多个连接的查询需要更长的执行时间。具体来说:
SELECT a.*, b.A, c.A, d.A
FROM a
LEFT JOIN
b
on a.A = b.A or a.B = b.A
LEFT JOIN
c
on a.A = c.A or a.B = c.A
LEFT JOIN
d
on a.A = d.A or a.B = d.A
需要花费大量时间才能完成,而在执行连接的每个步骤并将其保存到表中时,只需要很短的时间。整个查询的工作时间大约为 1:30 并且尚未接近完成,而执行 (((a->b)->c)->d) 总共需要 3 分钟。
这是什么原因,有大神帮忙吗?
【问题讨论】:
-
请编辑您的问题并更好地解释对您来说更快的选项。
标签: sql sql-server tsql join