数据库CBO执行计划优化器

什么是CBO?

CBO(Cost-Based Optimization)基于开销的优化。能够在众多执行计划中依据开销选出最高效的执行计划,从而提高数据库的性能。

既然是基于事务执行开销的选优,那开销是怎样计算的呢?

事务开销的计算

对于每个事务的执行计划,CBO会基于统计信息计算出一个预期的成本值。这个成本通常以CPU、I/O操作、内存消耗等形式量化。

例如一条SQL查询(SELECT)语句的执行过程,如下所示:

成本估算涉及到一系列复杂的计算过程,比如:

  1. 计算全表扫描或索引扫描的成本,考虑磁盘I/O和CPU处理;
  2. 估算连接操作的成本,考虑联接类型(Nested Loops, Hash Join, Sort Merge Join)和参与联接的记录数量;
  3. 预测排序操作的成本,考虑内存可用性和临时区的使用;
  4. 考虑到其他资源消耗,如缓冲区缓存命中率、网络传输等。

统计信息度包含哪些?

CBO适用于大多数需要高效查询性能的场景。特别是对于复杂的SQL语句,CBO可以更好地评估和比较各种查询路径的成本,从而选择出最优的执行计划。由于CBO依赖于统计信息来做出决策,因此在数据分布发生变化或者新数据加载之后,更新统计信息是保持CBO优化效果的关键

  1. CBO依赖于数据库对象(如表、索引)上的统计信息来估算数据量、数据分布以及索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值