首页数据库buffer cache oracle

buffer cache oracle

时间2023-10-21 19:20:02发布访客分类数据库浏览202
导读:Oracle的Buffer Cache是用于缓存数据库块的空间,缓存的是读取原始磁盘数据的数据块。尽管Oracle采用了许多优化技术来最小化磁盘I/O,但是仍然需要载入磁盘数据块。Buffer Cache的目的是尽可能减少读取原始磁盘数据的...

Oracle的Buffer Cache是用于缓存数据库块的空间,缓存的是读取原始磁盘数据的数据块。尽管Oracle采用了许多优化技术来最小化磁盘I/O,但是仍然需要载入磁盘数据块。Buffer Cache的目的是尽可能减少读取原始磁盘数据的操作,并将这些块保留在内存中用于以后的访问。

缓存是通过物理内存的分别来处理的,但实际上是通过Oracle进程处理的。有些进程被称为DBWR(数据库写进程),它们负责将修改后的块都写回到硬盘,有些被称为DBW0,它是将缓存中最旧的块刷回磁盘的化身。缓存是实现缓解磁盘I/O的一个重要手段。

不同的Oracle版本使用不同的块大小。在Oracle8中,块的大小通常是2Kb到16Kb。在Oracle9i中,默认块大小增加到8Kb到32Kb。在新版本中使用的块大小更大。从Oracle10gR1开始,默认块大小增加到是4K到32K。从版本11gR2开始,可以使用大块(大于8K)高效地存储大型数据。

SELECTNAME, CHILD_NUMBER, BYTES/1024/1024 "SIZE (MB)", BLOCK_SIZEFROM V$SQL_SHARED_CURSORWHERE LOADED_VERSIONS >
    1ORDER BY NAME, CHILD_NUMBER;
    

但一般来说,块越大而相对于查询数据给出的块位置大小更近,缓存就更有效,访问所需的​​硬盘I/O就越少。此外,以较大的块大小缓冲大型表时,Buffer Cache的效果也更明显;另外还可以增加SGA(内存)的大小。

缓存中的块可能与存储在其他块(委托缓存和固定缓存等)中的数据冲突。委托缓存可以分配大量内存来缓存大量数据。与此相反,固定缓存是为应用程序缓存数据而使用的。缓冲池大小也可能存在缺陷,如果过大,大块可能会被缓存而不使用,而如果过小,则可能会丢失大部分缓存,以致于缓存中的数据只是临时存储。

在处理数据库数据块时,Buffer Cache的角色是非常关键的。Oracle数据库中的每个单独块的大小不能超过DB_BLOCK_SIZE。缓冲池大小通常是主机内存的一小部分。缓存池的大小应该足够覆盖数据库中最近使用的全体书目的块大小。否则,在查询过程中,使用不常使用的块时就会写入硬盘。

SHOW PARAMETER SGA_MAX_SIZE;
    

现在许多应用程序都使用Oracle数据库,如银行系统,医院管理,诊断设备监控,能源管理等等。对于数据库,我们可以通过它来帮助管理应用程序,缓解磁盘 I/O ,以及增加性能,而在Oracle中,缓冲池就是其中的一个重要元素。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: buffer cache oracle
本文地址: https://pptw.com/jishu/504839.html
c oracle周 c excel导入oracle

游客 回复需填写必要信息