Tuning the Buffer Cache
Buffer cache的命中率对性能的影响,不如shared pool大。
因为你一般select * 就返回上千条记录回来,所以buffer
cache会被交换得比较频繁,不被命中也是情有可原的。也就
是调shared pool比较重要。
Objectvies:
1.Employ the buffer cache sizing advisor.用顾问。
2.Describe how the buffer cache is used by different
Oracle processes.各个进程是怎么用buffer cache的。
3.Create and manage different buffer caches.
4.Monitor the use of the buffer caches.
5.Identify and resolve buffer cache performance
problems.
内存里一个buffer的大小就是oracle一个数据块的大小。
Server Process是在用户发出查询时,如果内存中找不到,就
从磁盘中调相应的内容进内存的进程。DBWn则是做相反的工作
。
buffer cache中的队列是用LRU算法维系的。
buffer cache中有两种数据结构,一个是LRU队列,一个是
Checkpoint Queue。如果是完全检查点,会checkpoint队列中
的buffer会全部写到磁盘中,增量检查点则是慢慢写,逐点写
。
几个主要参数
DB_BLOCK_SIZE
DB_CACHE_SIZE
DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
DB_BLOCK_CHECKSUM
整个buffer cache可以由相互独立的几个缓冲池组成,这些换
冲池是可以有不同的block size的。
The DB_BLOCK_SIZE parameter determines the primary
block size,which is the block size used for the system
tablespace and the primary buffer caches
(recycle,keep,and default).
The following parameters define the sizes of the
caches for buffers for the primary block size:
- DB_CACHE_SIZE
- DB_KEEP_CACHE_SIZE
- DB_RECYCLE_CACHE_SIZE
例如db_block_size是8k,db_cache_size是50M这样。
参数db_cache_advice可以用来开启buffer cache advisory
feature。取值可以使off,on,ready。打开了会默默地收集数
据。
v$db_cache_advice视图可以查看收集到的数据。
With Oracle,physical reads do not necessarily indicate
disk reads;physical reads may well be satisfied from
the file system cache.有可能ORACLE认为的物理读,实际上
数据时放到操作系统的内存缓存区中,而没有进行真正的物理
读,因为oracle软件也是建立在操作系统之上的,但这样,同
样的内容就放在内存的不同地方了,CPU要忙着把内存的不同
块复制来复制去。所以不推荐增加文件系统的CACHE上,而应
该把精力放在调ORACLE调优上。
Buffer cache的命中率对性能的影响,不如shared pool大。
因为你一般select * 就返回上千条记录回来,所以buffer
cache会被交换得比较频繁,不被命中也是情有可原的。也就
是调shared pool比较重要。
Objectvies:
1.Employ the buffer cache sizing advisor.用顾问。
2.Describe how the buffer cache is used by different
Oracle processes.各个进程是怎么用buffer cache的。
3.Create and manage different buffer caches.
4.Monitor the use of the buffer caches.
5.Identify and resolve buffer cache performance
problems.
内存里一个buffer的大小就是oracle一个数据块的大小。
Server Process是在用户发出查询时,如果内存中找不到,就
从磁盘中调相应的内容进内存的进程。DBWn则是做相反的工作
。
buffer cache中的队列是用LRU算法维系的。
buffer cache中有两种数据结构,一个是LRU队列,一个是
Checkpoint Queue。如果是完全检查点,会checkpoint队列中
的buffer会全部写到磁盘中,增量检查点则是慢慢写,逐点写
。
几个主要参数
DB_BLOCK_SIZE
DB_CACHE_SIZE
DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
DB_BLOCK_CHECKSUM
整个buffer cache可以由相互独立的几个缓冲池组成,这些换
冲池是可以有不同的block size的。
The DB_BLOCK_SIZE parameter determines the primary
block size,which is the block size used for the system
tablespace and the primary buffer caches
(recycle,keep,and default).
The following parameters define the sizes of the
caches for buffers for the primary block size:
- DB_CACHE_SIZE
- DB_KEEP_CACHE_SIZE
- DB_RECYCLE_CACHE_SIZE
例如db_block_size是8k,db_cache_size是50M这样。
参数db_cache_advice可以用来开启buffer cache advisory
feature。取值可以使off,on,ready。打开了会默默地收集数
据。
v$db_cache_advice视图可以查看收集到的数据。
With Oracle,physical reads do not necessarily indicate
disk reads;physical reads may well be satisfied from
the file system cache.有可能ORACLE认为的物理读,实际上
数据时放到操作系统的内存缓存区中,而没有进行真正的物理
读,因为oracle软件也是建立在操作系统之上的,但这样,同
样的内容就放在内存的不同地方了,CPU要忙着把内存的不同
块复制来复制去。所以不推荐增加文件系统的CACHE上,而应
该把精力放在调ORACLE调优上。