Oracle10g数据缓冲区(DB_CACHE_SIZE)

数据块缓冲缓存区(Data   block   buffers   cache):
   Data   buffers在8i中是Db_block_buffers*Db_block_size,
   9ie及以后版本用Db_cache_size来代替这个参数。
   而10G中,这个参数是由oracle本身自动管理的,可以不用手工设置。
   在内存的配置中把别的参数设置完成后,应该把能给的都给Data   buffers。Oracle   在运行期间向数据库高速缓存读写数据,高速缓存命中表示信息已在内存中,高速缓存失败意味着Oracle必需进行磁盘I/O。保持高速缓存失败率最小的关 键是确保高速缓存的大小。Oracle8i中初始化参数Db_block_buffers控制数据库缓冲区高速缓存的大小。可通过查询V$sysstat 命中率,以确定是否应当增加Db_block_buffers的值。  
    SELECT   name,value   FROM   V$sysstat  
    WHERE   name   in   ('dbblock gets','consistent gets','physical reads');  
   通过查询结果命中率=1-physical   reads/(dbblock   gets+consistent   gets)   如果命中率<0.6~0.7,则应增大Db_block_buffers。  

    Oracle 10g中,与内存相关的参数可以归为两类:

自动调优的SGA参数:目前这些参数包括DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE。

手动SGA参数:这些参数包括LOG_BUFFER、STREAMS_POOL、DB_NK_CACHE_SIZE、DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。

    在Oracle 10g中,任何时候你都能查询V$SGAINFO,来查看SGA的哪些组件的大小可以调整。

    注意   
    要使用自动SGA内存管理,参数STATISTICS_LEVEL必须设置为TYPICAL或ALL。如果不支持统计集合,数据库就没有必要的历史信息来确定大小。

    采用自动SGA内存管理时,确定自动调整组件大小的主要参数是SGA_TARGET,这个参数可以在数据库启动并运行时动态调整,最大可以达到 SGA_MAX_SIZE参数设置的值(默认等于SGA_TARGET,所以如果想增加SGA_TARGET,就必须在启动数据库实例之前先把 SGA_MAX_SIZE设置得大一些)。数据库会使用SGA_TARGET值,再减去其他手动设置组件的大小(如 DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE等),并使用计算得到的内存量来设置默认缓冲区池、共享池、大池和 Java池的大小。在运行时,实例会根据需要动态地对这4个内存区分配和撤销内存。如果共享池内存用光了,实例不会向用户返回一个ORA- 04031“Unable to allocate N bytes of shared memory”(无法分配N字节的共享内存)错误,而是会把缓冲区缓存缩小几MB(一个颗粒的大小),再相应地增加共享池的大小。

你可能感兴趣的:(java,oracle,数据库,cache,oracle10g,statistics)