GaussDB 100支持基于成本的查询优化器CBO(Cost-Based Optimization)。
特性描述
查询优化是选择执行SQL语句的最有效方法的过程。
SQL是一种非过程语言,因此优化器可以按任何顺序自由合并、重组和处理。数据库根据收集的有关访问数据的统计信息优化每个SQL语句。优化器通过检查多个访问方法(如全表扫描或索引扫描),不同的连接方法(如嵌套循环和散列连接),不同的连接顺序以及可能的转换来确定SQL语句的最佳计划。
对于给定的查询和环境,优化程序会为可能的计划的每个步骤分配相对数字成本,然后将这些值计算在一起以生成计划的总体成本估算。在计算替代计划的成本之后,优化程序选择具有最低成本估算的计划。出于这个原因,优化器有时被称为基于成本的优化器(CBO),经常用于和基于规则的优化器(RBO)进行对比。
GaussDB 100支持CBO优化器,CBO优化器根据SQL语句的代价(cost)进行最优执行计划的选择,CBO优化器分为三个重要组成部分:
查询转换
对于某些语句,查询转换器将原始SQL语句重写为具有较低成本的等价SQL语句,并判断是否有效。
代价评估
用于确定给定执行计划的总体成本。
执行计划生成
通过尝试不同的访问路径,连接方法和连接顺序来探索SQL的各种可选执行计划。
CBO优化器评估执行代价依赖于统计信息,统计信息分为以下几类:
表统计信息:总行数、数据块总数、平均行长度等;
列统计信息:直方图、唯一值数量、空值数量、列密度等;
索引统计信息:索引所在列,索引的大小,索引层级等;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。