ITPub博客

首页 > 数据库 > > gaussdb100 CBO

gaussdb100 CBO

作者:GaussDB_数据库 时间:2020-02-25 09:58:48 0 删除 编辑

GaussDB 100支持基于成本的查询优化器CBO(Cost-Based Optimization)。

特性描述

查询优化是选择执行SQL语句的最有效方法的过程。

SQL是一种非过程语言,因此优化器可以按任何顺序自由合并、重组和处理。数据库根据收集的有关访问数据的统计信息优化每个SQL语句。优化器通过检查多个访问方法(如全表扫描或索引扫描),不同的连接方法(如嵌套循环和散列连接),不同的连接顺序以及可能的转换来确定SQL语句的最佳计划。

对于给定的查询和环境,优化程序会为可能的计划的每个步骤分配相对数字成本,然后将这些值计算在一起以生成计划的总体成本估算。在计算替代计划的成本之后,优化程序选择具有最低成本估算的计划。出于这个原因,优化器有时被称为基于成本的优化器(CBO),经常用于和基于规则的优化器(RBO)进行对比。

GaussDB 100支持CBO优化器,CBO优化器根据SQL语句的代价(cost)进行最优执行计划的选择,CBO优化器分为三个重要组成部分:

  • 查询转换

    对于某些语句,查询转换器将原始SQL语句重写为具有较低成本的等价SQL语句,并判断是否有效。

  • 代价评估

    用于确定给定执行计划的总体成本。

  • 执行计划生成

    通过尝试不同的访问路径,连接方法和连接顺序来探索SQL的各种可选执行计划。

CBO优化器评估执行代价依赖于统计信息,统计信息分为以下几类:

  • 表统计信息:总行数、数据块总数、平均行长度等;

  • 列统计信息:直方图、唯一值数量、空值数量、列密度等;

  • 索引统计信息:索引所在列,索引的大小,索引层级等;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3169279/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19275