暂无图片
openGauss使用的是哪个优化器,CBO or RBO? 有啥区别?
我来答
分享
暂无图片 匿名用户
openGauss使用的是哪个优化器,CBO or RBO? 有啥区别?

openGauss使用的是哪个优化器,CBO or RBO? 有啥区别?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
吾喾

RBO(Rule-Based Optimization)#
RBO: Rule-Based Optimization也即“基于规则的优化器”,该优化器按照硬编码在数据库中的一系列规则来决定SQL的执行计划。
如在规则中:索引的优先级大于全表扫描。
在RBO中,有着一套严格的使用规则,只要你按照规则去写SQL语句,无论数据表中的内容怎样,也不会影响到你的“执行计划”,也就是说RBO对数据不“敏感”。这就要求开发人员非常了解RBO的各项细则,不熟悉规则的开发人员写出来的SQL性能可能非常差。
但在实际的过程中,数据的量级会严重影响同样SQL的性能,这也是RBO的缺陷所在。毕竟规则是死的,数据是变化的,所以RBO生成的执行计划往往是不可靠的,不是最优的。
CBO(Cost-Based Optimization)#
CBO: Cost-Based Optimization也即“基于代价的优化器”,该优化器通过根据优化规则对关系表达式进行转换,生成多个执行计划,然后CBO会通过根据统计信息(Statistics)和代价模型(Cost Model)计算各种可能“执行计划”的“代价”,即COST,从中选用COST最低的执行方案,作为实际运行方案。
CBO依赖数据库对象的统计信息,统计信息的准确与否会影响CBO做出最优的选择。
目前各大数据库和大数据计算引擎都倾向于使用CBO。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘浩

openGauss优化器是典型的基于代价的优化 (Cost-Based Optimization,简称CBO)。在这种优化器模型下,数据库根据表的元组数、字段宽度、NULL记录比率、distinct值、MCV值、HB值等表的特征值,以及一定的代价计算模型,计算出每一个执行步骤的不同执行方式的输出元组数和执行代价(cost),进而选出整体执行代价最小/首元组返回代价最小的执行方式进行执行。

区别如下:

 RBO: Rule-Based Optimization 基于规则的优化器

CBO: Cost-Based Optimization 基于代价的优化器

暂无图片 评论
暂无图片 有用 0
打赏 0
酷哥

再补充一些:

RBO 应该已经废弃; 

CBO,主要由“查询转换、代价评估、执行计划生成”三部分组成,其依赖于统计信息(1.analyze收集;2.pg_statistic系统表存储有关该数据库中表和索引列的统计数据,需要有系统管理员权限)。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
最近发现,国产数据库比较火,想做DBA相关工作,对于openGauss数据库需要掌握或学习哪技能?
回答 1
参考:题主对openGauss数据库应该是入门级(当然可能具体其他数据库通用的DBA经验),建议可以从以下几点入手(包含但不限于):1.熟练系统部署:下载openGauss相关软件包,演练部署过程(包
如何评价 openGauss 开源社区升级,推动数据库跨越式发展? 怎么个跨越式?
回答 1
背景回顾:1.在openGauss数据库2021年峰会上,openGauss开源社区理事会宣布有新的重磅成员加盟。在已有的中国移动、中国电信、中国联通、招商银行、邮储银行、清华大学等第一批理事单位的基
openGauss第一次使用必须要修改用户名密码吗?
回答 1
第一次使用数据库,必须修改omm用户密码,使用如下语句。alterroleommidentifiedby‘新密码’replace‘旧密码’;或者退出数据库。\q关闭密码修改设置。gsgucreload
pgrouting整合到opengauss
回答 1
https://blog.csdn.net/GaussDB/article/details/121210147?spm1001.2101.3001.6650.4&utmmediumdistri
openGauss如何创建以日期字段作为分区字段的分区表?求示例?
回答 2
在openGauss中创建以日期字段作为分区字段的分区表,您需要遵循以下步骤:1.创建分区表所需的表空间。2.创建分区表的主表。主表的定义必须包含分区字段和主键列。3.创建分区表的每个分区。您需要在每
关于openGauss数据库,MOT使用起来和普通表有什么不同?
回答 1
openGauss为了将MOT存储引擎集成到openGauss中,使用和扩展了现有的外部数据封装(FDW)机制,因此在建表的时候MOT表体现为一个外表,如下所示:createFOREIGNtablet
查看sql文本
回答 2
已采纳
https://opengauss.org/zh/docs/3.0.0/docs/CharacteristicDescription/%E6%85%A2SQL%E8%AF%8A%E6%96%AD.ht
opengauss主备安装问题
回答 4
已采纳
GAUSSENV在环境变量中用来做安装状态的检查。GAUSSENV1表示预安装成功GAUSSENV2表示安装成功对于正常的安装,卸载,都会重置这个环境变量的。像这个问题,一般都是属于机器已经安装过数据
Oracle迁移到opengauss工具
回答 1
已采纳
可视化工具没有吧,不太清楚,openGausstoolsora2og  研究研究试一下: https://gitee.com/opengauss/openGausstoo
opengauss3.0.0使用cm_install工具安装cm报错,怎么查看具体日志及解决呢
回答 1
在执行安装命令时,将日志输出到文件中。./cminstallX/gauss/soft/clusterconfigfgedu.xml2023cmpkg/gauss/software/gaussdbupg
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~