mysql 硬解析_ORACLE夸大了硬解析的代价!!?

ORACLE夸大了硬解析的代价:

经常看到一些人做实验对比硬解析对性能的冲击有多么大。

可是别忘了,ORACLE的很多架构设计都是依据“应用要软解析”来设计的

比如共享池的存在,更确切的说是,library cache的存在就是为了缓存执行计划,避免硬解析

而其他的一些数据库比如POSTGRES,MYSQL可能压根上不需要一个这么池来缓存执行计划。

有了这个一个池,一个共享的池,必然会出现争用的问题,一旦大量的SQL要硬解析,争用必然出现

但是如果没有这个池,这么一个共享的池,这个争用将不再存在

我们来看看解析的代价,李维斯lewis把解析划分为了:解析和优化两个大阶段,我把第二个阶段再细分一个出来

解析的代价:

1)解析 分析语法、大量递归查询数据字典

2)优化,CBO算法得出一个最有效的执行计划,ORACLE的CBO算法比较复杂,这个步骤相对于其他数据库也要耗费多点的CPU

3)在共享池里存储执行计划,这个东东会引起大量争用

在一个比较小的数据库系统里,像POSTGRES,MYSQL 虽然可能大部分是硬解析,但是真的,没那么硬。其实步骤1他们一定有自己的缓存

我没听说过哪个数据库敢没有数据字典缓存的(可以没有SQL缓存),所以步骤一的代价并没有那么大

步骤二呢,大部分数据库的CBO算法极其简单,可能有些还停留在RBO阶段,所以这个步骤也没多大的代价

第三步,只有ORACLE这个东西有,这个步骤的代价很大,资源争用严重。

经过上面分析,可以知道,步骤一、二,对很多数据库真的没多大的代价

而ORACLE这个数据库多了第三个步骤,其实这个步骤的代价是最大的我个人觉得。

所以硬解析在ORACLE里就显得非常严重,非常强调要避免硬解析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值