WEB开发网
开发学院数据库Oracle Oracle中Buffer Cache内存结构及监控 阅读

Oracle中Buffer Cache内存结构及监控

 2007-05-12 12:24:11 来源:WEB开发网   
核心提示:本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构,然后结合各个后台进程(包括DBWRn、CKPT、LGWR等)深入介绍了oracle对于buffer cache的管理机制,Oracle中Buffer Cache内存结构及监控,并详细解释了oracle为什么会采用现在的管理机制,是为了解

本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构。然后结合各个后台进程(包括DBWRn、CKPT、LGWR等)深入介绍了oracle对于buffer cache的管理机制,并详细解释了oracle为什么会采用现在的管理机制,是为了解决什么问题。比如为何会引入touch次数、为何会引入增量检查点等等。最后全面介绍了有关buffer cache监控以及调优的实用方法。

1. buffer cache的概念

用最简单的语言来描述oracle数据库的本质,其实就是能够用磁盘上的一堆文件来存储数据,并提供了各种各样的手段对这些数据进行管理。作为管理数据的最基本要求就是能够保存和读取磁盘上的文件中的数据。众所周知,读取磁盘的速度相对来说是非常慢的,而内存相对速度则要快的多。因此为了能够加快处理数据的速度,oracle必须将读取过的数据缓存在内存里。而oracle对这些缓存在内存里的数据起了个名字:数据高速缓存区(db buffer cache),通常就叫做buffer cache。按照oracle官方的说法,buffer cache就是一块含有许多数据块的内存区域,而这些数据块主要都是数据文件里的数据块内容的拷贝。通过初始化参数:buffer_cache_size来指定buffer cache的大小。oracle实例一旦启动,该区域大小就被分配好了。

buffer cache所能提供的功能主要包括:

1) 通过缓存数据块,从而减少I/O。

2) 通过构造CR块,从而提供读一致性功能。

3) 通过提供各种lock、latch机制,从而提供多个进程并发访问同一个数据块的功能。

2.buffer cache的内存结构

2.1 buffer cache概述

oracle内部在实现其管理的过程中,有两个非常有名的名词:链表和hash算法。

链表是一种数据结构,通过将对象串连在一起,从而构成链表结构。这样,如果要修改、删除、查找某个对象的话,都可以先到链表中去查找,而不必实际的访问物理介质。oracle中最有名的链表大概就是LRU链表了,我们后面会介绍它。

1 2 3 4 5 6  下一页

Tags:Oracle Buffer Cache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接