开发者社区> 问答> 正文

ADB是如何选择优化器来生成执行计划的?

ADB是如何选择优化器来生成执行计划的?

展开
收起
圆葱猪肉包 2024-08-21 15:49:44 9 0
2 条回答
写回答
取消 提交回答
  • ADB在SQL解析和重写阶段会根据SQL本身自动选择最优的优化器来生成执行计划。对于AP复杂查询,启用ORCA优化器以生成更优的执行计划;对于TP实时写入、更新、删除和点查场景,以及AP简单查询分析场景,则使用PostgreSQL自带的经过分布式改造的Planner优化器。

    2024-08-21 17:30:32
    赞同 7 展开评论 打赏
  • AnalyticDB MySQL版(简称ADB)的查询优化器基于统计信息来估算不同执行计划的开销,并选择最佳的执行计划。优化器会自动选择Join Method和Join Order。对于Join Order,它通常使用Left Deep Tree策略适用于简单查询,而Bushy Tree用于更复杂的查询。在某些场景下,您可以通过SQL Hint reorder_joins 手动调整Join Order。例如,/+reorder_joins=false/ 可以打开手动调整,/+reorder_joins=true/ 则关闭,让系统自动选择。建议确保表有最新的统计信息,以帮助优化器做出更好的决策。自动收集统计信息手动收集统计信息

    2024-08-21 16:33:32
    赞同 6 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
消电行业数据中台解决方案白皮书 立即下载
(终极版)2020阿里云金融数据中台报告 立即下载
2020年中国乳制品行业数据中台研究报告 立即下载