首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证明CTE优于游标的CTE示例

证明CTE优于游标的CTE示例
EN

Stack Overflow用户
提问于 2010-12-09 18:34:48
回答 2查看 1.3K关注 0票数 0

我读到过CTE比光标更好。但我找不到一个简单明了的例子来证明这一点。我是Sql Server2005的新手,为了理解它,我需要一个简单的示例,在这个示例中,我们通过CTE存储值并逐个处理它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 19:18:09

如果使用游标,则行序列将逐个执行,因为它一次只提取一行。因此,当我们在具有更多行的表中使用游标时,需要花费更多的时间。

票数 1
EN

Stack Overflow用户

发布于 2012-07-21 23:20:19

CTE在递归方案中产生更快的结果。CTE的结果被重复使用来获得最终的结果集。因此,由于您已经在CTE中使用了where子句或子查询,因此它肯定会显示出性能改进。虽然游标的执行流程是同步的(逐个执行),但它必然会花费更多的时间。参考:http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx

只需注意,在许多情况下,临时表也比CTE提供更好的性能,所以你也应该尝试一下临时表。

参考:http://social.msdn.microsoft.com/Forums/en/transactsql/thread/d040d19d-016e-4a21-bf44-a0359fb3c7fb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4397247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档