gpt4 book ai didi

sql-server - 为什么CTE比游标/派生表/子查询/临时表等更好?

转载 作者:行者123 更新时间:2023-12-02 23:08:20 27 4
gpt4 key购买 nike

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

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

最佳答案

(非递归)CTE 不使用游标。这是一种基于集合的方法。这是与使用游标相比的巨大区别。但一般情况下不使用游标也是如此。

应尽可能避免使用光标(我相信我们都知道)。

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

当查询计划优化器获得不准确的 CTE 行估计时,CTE 可能不是最佳方法。

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

关于sql-server - 为什么CTE比游标/派生表/子查询/临时表等更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6824669/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com