河内机器人 等价变换SQL改写核心逻辑
结合你此前关注的金仓数据库相关性能优化背景,KingbaseES优化器的底层逻辑核心分为等价变换
SQL改写、条件调度驱动运行时两大模块,依托kdb_rbo插件实现全链路性能提升。
一、等价变换SQL改写核心逻辑
内置kdb_rbo插件:需在kingbase.conf的shared_preload_libraries中添加该插件启用,是所有逻辑优化规则的载体。
核心改写规则:
count(distinct)查询优化:通过等价转换大幅提升该类慢查询性能,由kdb_rbo.attribute_distinct_value_threshold参数控制。
distinct消除:目标列唯一时自动移除冗余distinct操作,减少无效计算。
合并公共子表达式:消除重复表访问与连接操作,降低执行开销。
UNION条件下推、合并(NOT)EXISTS子链接、不等式变换:通过等价逻辑调整,让SQL能更高效利用索引,减少冗余过滤。
二、条件调度驱动运行时
优化器生成执行计划后,运行时会基于统计信息动态调整算子执行顺序,优先执行过滤性强的条件,快速裁
剪无效数据行,避免后续算子处理大量冗余数据,进一步放大SQL改写带来的性能收益。
你可以查看金仓数据库官方SQL优化文档了解完整的参数配置细节。
需要我为你整理KingbaseES优化器的核心GUC参数调优清单吗?帮你快速落地性能优化效果。