Oracle数据库高性能秘密之数据高速缓存

使用过Oracle数据库的人都知道,Oracle数据库的运行速度与效率,在同类 数据库中是名列前茅的,特别是对大量数据进行访问时,更加有出色的表现。那么,Oracle数据库是靠什么实现的呢?笔者下面将通过一系列的文章,向大家展示Oracle数据库提供高性能运算的秘密。

  Oracle数据库作为复杂运算的首选数据库,其首先是通过所谓的数据高速缓存来实现对数据的高速运算与操作的。

  数据高速缓存跟操作系统的缓存类似,其存储最近从数据文件中读取的数据块,其中的数据可以被所有的用户所访问。如当我们利用Select语句从数据库中查询员工信息的时候,其首先不是从数据文件中去查询这个数据,而是从数据高速缓存中去查找,而没有这个必要再去查询磁盘中的数据文件了。只有在数据缓存中没有这个数据的时候,数据库才会从数据文件中去查询。Oracle数据库为什么要如此设计呢?这是由于数据库在读取数据的时候,读取内存的速度比读取磁盘的速度要快很多倍,所以这种机制可以提高数据的整体访问效率。

  虽然其他数据库也有这方面的设计,但是,相对来说,Oracle数据库比其他数据库,在这方面有更加出色的表现。难怪Oracle数据库在内存的要求上,比其他数据库要高。若以稍微的代价牺牲一些内存,而换取更高的数据访问性能。笔者认为还是值得的。下面我们就来看看,Oracle数据库在数据高速缓存上有哪些特殊的表现。

  一、 空闲缓存块。

  当我们重新启动数据库后,系统就会为数据库分配一些空闲的缓存块。空闲缓存块中是没有任何数据的,他在那边默默的等着别写入记录。当Oracle 数据库从数据文件中读取数据后,数据库就会寻找是否有空闲的缓存块,以便将数据写入其中。

  一般来说,数据库在启动的时候,就会在内存中预先分配这些缓存块。所以,Oracle数据库在启动的时候,会占用比较多的内存。但是,这可以免去在实际需要时向内存申请的时间。所以,有时候Oracle数据库虽然已启动,内存的占用率就很高,但是,其后续仍然可以正常运行的原因。而其他数据库虽然刚启动的时候内存占用率不是很高,但是,但系统内存到达80%以上时,在进行数据处理就会受到明显的影响。

  所以,当我们利用SELECT语句从数据库文件中读取文件的时候,数据库首先会寻找是否有空闲的缓存。

  二、 命中缓存块。

  当SELECT语句先从数据库文件中读取数据后,会把取得的数据放入到这个命中缓存块中。也就是说,当我们利用查询语句从数据库查询处员工信息后,这个信息就会被保存在高速缓存中。直道高速缓存消耗完毕等原因,这个空间才会被释放。如此的话,下次用户在查询员工信息的时候,就不需要从数据库文件中再次查询相关信息,而直接从数据高速缓存中提取数据,从而提高数据库的访问效率。

  另外要注意的一个问题是,命中缓存块中的数据不会被写入数据文件。确实,这个命中缓存块中的数据没有被更改,其当然也不会被写入数据库文件中。

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

转载于:http://blog.itpub.net/693532/viewspace-746255/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值