开发者社区> 问答> 正文

什么是CTE技术?

什么是CTE技术?

展开
收起
曦情兮 2022-05-09 22:11:59 498 0
1 条回答
写回答
取消 提交回答
  • CTE(Common table expression),TPC-DS 30%+ 的 sql 中包含 with as 用法, 通过 with as 子查询,在主查询中多次引用,每一次引用带来了额外的重复计算,导致资源浪费。基础的 CTE 优化,通过复用 with 子句的结果给多个引用方,来减少重复计算的代价。但是对于部分场景,与主查询的关系推导可以进一步减少 with 子查询中的计算量,这时直接 share 完整 with 子句会导致额外的性能回退。那么通过 inline 后的最优计划,进行 common sub tree 的识别,进一步减少重复计算量,达到无 bad case 的效果。执行器实现中,我们引入了死锁检测,通过分析 common sub tree 的多个 consumer 之间的依赖关系,解决死锁问题。

    2022-05-10 13:03:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载