buffer cache oracle
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)高效地存储大型数据。
SELECT NAME, CHILD_NUMBER, BYTES/1024/1024 "SIZE (MB)", BLOCK_SIZE FROM V$SQL_SHARED_CURSOR WHERE LOADED_VERSIONS >1 ORDER BY NAME, CHILD_NUMBER;