设为首页 加入收藏

TOP

Oracle常用调优手段(二)
2014-11-24 02:03:11 来源: 作者: 【 】 浏览:7
Tags:Oracle 常用 手段
WAP),通过相应配置将Oracle SGA锁定在物理内存避免被交换到虚拟内存中,可以减少页面的换入和换出,从而提高性能。
HP-UNIX下的配置方法:
#/etc/setprivgrp dba MLOCK
调整ORACLE参数:lock_sga=TRUE
重启数据库
AIX 5L(AIX 4.3.3)下的配置方法:
$/usr/sbin/vmo -r -o v_pinshm=1(或vmtune -s 1)
调整ORACLE参数:lock_sga=TRUE
重启数据库
3.5、控制内存交换操作(Paging)
大量的内存交换操作会极大地影响系统的性能,尤其是在当数据库文件创建在文件系统上时影响更大。在这种情况下经常访问的数据,即在SGA中存在也同样在文件的缓存中存在。这种相同的数据在内存中缓存两次的情况,会降低内存的使用效率,从而使内存频繁进行交换操作,造成系统的I/O瓶颈,降低整个系统的性能。 通过将ORACLE数据文件建在裸设备上和调整系统文件缓存,可以有效降低内存交换操作。
在AIX上,可以通过vmtune命令中的MINPERM(缺省值20)和MAXPERM(缺省值80)参数来调整系统文件缓存,用以控制内存交换操作。一般将MINPERM和MAXPERM分别设为5%和20%甚至更小,可使内存更多地被用于Oracle的SGA而不是系统的文件缓存。
#vmtune -p 5 -P 20
在HP-UINX 10.X以前的版本中,分配过大的文件系统缓存,也会导致Oracle的SGA被交换到虚拟内存中去。在10.X以后的版本中文件系统缓存动态分配。不合理的设置dbc_min_pct和dbc_max_pct也会导致无法解释的偶然或间歇性停顿出现。
4.优化数据库内存
4.1、Oracle内存结构
4.2、优化SGA(System Global Area )
对于Oracle内存的调整设置,要根据实际情况酌情考虑,基本的原则是:
数据缓冲区(data buffer):用于存放从数据文件读入的数据块,可以尽可能的大;
共享池(shared_pool_size):用于保存数据字典及当前执行的SQL语句和存储过程,要适度;
日志缓冲区(log_buffer):用于缓存用户更新的数据,不需太大。
shared_pool_size:要大小要适度,通常设为500M左右,不应超过700M。
log_buffer :通常设为512K到1M。
large_pool_size :如果不设置MTS(Multi-Threaded Server),该部分内存只会在 RMAN(恢复管理) 、OPQ(并行查询) 中使用到,通常设置为是16M-64M 。
java_pool_size : 如果在数据库里不使用java,通常设置为16M。
data buffer :在做了上面的设置后,凡可以提供给Oracle的内存,都应该给data buffer = (db_block_size * db_block_buffers) 。
SGA=data buffer+shared_pool_size+log_buffer+java_pool_size+large_pool_size
4.3、优化PGA (Program Global Area )
sort_area_size:默认64K,通常设置为128K到512K
hash_area_size:不做配置,是根据2*sort_area_size计算得到
这两个参数在非MTS下都是属于PGA(Program Global Area),不属于SGA。它是为每个session单独分配的,所以服务器上内存开销情况通常要求:OS内存+SGA+session* (sort_area_size+hash_area_size+2M)<总物理RAM。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle的SQL语句执行效率问题查找.. 下一篇oracle--如何分析执行计划

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: