【发布时间】:2010-11-30 12:00:01
【问题描述】:
我正在尝试优化使用冗余查询块的查询的速度。我正在尝试使用下面的查询在 sql server 2008 中进行逐行联接。
Select * from
(<complex subquery>) cq
join table1 t1 on (cq.id=t1.id)
union
Select * from
<complex subquery> cq
join table2 t2 on (cq.id=t2.id)
<complex subquery> 在两个联合子查询片段上完全相同,只是我们需要将它与多个不同的表连接以获得相同的列数据。
有什么方法可以在不使用临时表缓存结果的情况下重写查询以使其更快?
【问题讨论】:
-
CTE 的可能?谷歌一下,看看它是否符合您的需求。
-
@leppie - 如果不使用此处所述的计划指南,CTE 通常不会实现结果explainextended.com/2009/05/28/generating-xml-in-subqueries
标签: sql sql-server query-optimization union rdbms