为什么CTE比光标/派生表/子查询/临时表等更好?

时间:2011-07-26 02:44:02

标签: sql-server common-table-expression

与派生表/子查询/临时表等方法相比,CTE如何以及为何提供更好的性能?

临时数据库中发生任何临时计算。因此,如果我们有一个游标方法,它还会在临时数据库中创建临时表/工作表,一旦操作结束,该工作表就会被销毁。我对CTE的理解是,它也做同样的事情(或者它是否会在内存中创建临时结果?从而提高性能)那为什么它比上面的方法更好,比如游标/派生表/子查询/临时表等?

1 个答案:

答案 0 :(得分:8)

(非递归)CTE不使用游标。这是一种基于集合的方法。与使用游标相比,这是一个很大的不同。但是,那就是一般不使用游标的确如此。

在绝对可能的情况下应该避免使用游标(因为我确信我们都知道)。

CTE不一定比使用派生表更好,但确实导致更易理解的TSQL代码。 CTE实际上只是查询或子查询的简写;类似于临时观点的东西。

相关问题:What are the advantages/disadvantages of using a CTE?

相关问题