/*1、系统全局域:
SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/2到1/3,当然,如果服务器上只有oracle的话,
可以分配的更大一些,如果还有其他服务,如IIS等,那就要分的小一些。
1、共享池:
修改共享池的大小,ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
查看共享SQL区的使用率:*/
select(sum(pins-reloads))/sum(pins) "Library cache" from v$librarycache;
--动态性能表
/*这个使用率应该在90%以上,否则需要增加共享池的大小。
查看数据字典缓冲区的使用率:*/
select (sum(gets-getmisses-usage-fixed))/sum(gets) "Data dictionary cache" from v$rowcache;
--动态性能表
/*这个使用率也应该在90%以上,否则需要增加共享池的大小。
2、缓冲区高速缓存:
它的大小要根据数据量来决定:
SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB
查看数据库数据缓冲区的使用情况:*/
select name,value from v$sysstat where name in('db block gets','consistent gets','physical reads') order by name;
/*计算出来数据缓冲区的使用命中率=1-(physical reads/(db block gets+consistent gets)),这个命中率应该在90%以上,否则需要
增加数据缓冲区的大小。*/
select sum(pins) "请求存取数",sum(reloads) "不命中数",sum(reloads)/sum(pins) from v$librarycache;
/*其中,pins,显示在库高速缓存中执行的次数;reload,显示在执行阶段库高速缓存不命中的数目,一般sum(reloads)/sum(pins)的
值应接近于零.如果大于1%就应该增加shared_pool_size的值, 来提高数据字典高速缓存可用的内存数量,减少不命中数.
通过动态性能表v$rowcache来查询数据字典高速缓存的活动: */
select sum(gets) "请求存取数",sum(getmisses) "不命中数" from v$rowcache;
/*其中,gets,显示请求相应项的总数; getmisses,显示造成高速缓存不命中的数据请求数.
Hit ratio与wait events:*/
SELECT value FROM V$PGASTAT where name ='cache hit percentage';
/*Hit ratio与wait events是此消彼涨,在执行类似于
select col1,col2,.. from tab1 a where exists (
select 1 from tab2 where a.col3 = b.col3
)
where ....
的语句的时候,如果tab1的记录很多的话,你会发现系统的hit ratio会有很大的提高,wait events是否会改观呢.
3、日志缓冲区*/
SELECT name, value FROM v$sysstat WHERE name IN ('redo entries','redo log space requests');
/*查看日志缓冲区的使用情况。
查询出的结果可以计算出日志缓冲区的申请失败率:
申请失败率=requests/entries,申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加ORACLE数据库的日志缓冲区。
3、大型池:
可以减轻共享池的负担
可以为备份、恢复等操作来使用
不使用LRU算法来管理
其大小由数据库的‘共享模式/db模式’如果是共享模式的话,要分配的大一些
指定Large Pool的大小,ALTER SYSTEM SET LARGE_POOL_SIZE=64M
3、Java池:
在安装和使用Java的情况下使用
其大小由JAVA_POOL_SIZE指定
*/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13636837/viewspace-611279/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13636837/viewspace-611279/