
CBO 优化的基石——Apache Calcite 统计信息和代价模型详解
注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite ValcanoPlanner 优化器一文中,我们介绍了 Calcite VolcanoPlanner 的理论基础、核心概念和整体流程,VolcanoPlanner 在优化时会计算不同执行计划的代价 ...
注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite ValcanoPlanner 优化器一文中,我们介绍了 Calcite VolcanoPlanner 的理论基础、核心概念和整体流程,VolcanoPlanner 在优化时会计算不同执行计划的代价 ...
注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite HepPlanner 优化器一文中,我们介绍了查询优化器的基本概念和用途,并结合 Calcite HepPlanner 深入分析了启发式优化器的实现原理。启发式优化器使用相对简单,它直接对逻辑执行计...
问题背景 最近 ShardingSphere 社区用户反馈,他使用 BenchmarkSQL 工具对 ShardingSphere Proxy 进行性能测试,在执行 ./runDatabaseBuild.sh props.mysql 初始化数据阶段,出现了 ArrayIndexOutOfBoundsException 异常,而且异常能够稳定复现。考虑到 ShardingSphere 团队内...
注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 什么是 RBO Calcite 中的 RBO 规则 HepPlanner 中的基础概念 HepPlanner:基于规则的启发式优化器,实现了 RelOptPlanner 优化器接口; HepProgram:提供了维护各种类型 HepInstruc...