gpt4 book ai didi

sql - 何时在 Oracle 中使用递归 CTE

转载 作者:行者123 更新时间:2023-12-04 05:04:20 26 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




在 Oracle 中,我尝试以不同的方式运行相同的分层查询:使用 CONNECT BY 和递归 CTE。根据执行计划 CONNECT BY 是可取的。

是否有任何情况下,递归 CTE 在 Oracle 中工作得更快(或者是否有任何情况下它们更适合使用)?

谢谢。

最佳答案

"According to an execution plan CONNECT BY is preferable."



这并不奇怪。几十年来,CONNECT BY 语法一直是 Oracle 工具箱的一部分,因此 Oracle 有很多时间来调整优化器以高性能方式处理它。递归 CTE 较新。

此外,我怀疑 CBO 会更难理解递归 CTE 的成本,因为它们是程序化的,而不是数据驱动的。

另一方面,很多人(不仅仅是初学者)在掌握 Oracle 分层语法方面存在问题,而递归是一个标准的编程概念。所以也许这就是它们有用的地方。

顺便说一句,我认为在性能至关重要的情况下不应该使用分层查询。如果您有大量数据需要快速且经常以分层格式检索,您可能应该考虑不同的方法,例如实现传递闭包。 Find out more.

关于sql - 何时在 Oracle 中使用递归 CTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719263/

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