ORACLE - 系统参数调整

1、内存调整缓存

    oracle 11g中,ORACLE把SGA与PGA统一管理,总和为memory_target参数的设定,也就是MAX(SGA+PGA)<= memory_target(固然能够在建立新实例的时候肯定是否使用这种方案,在10g中是没有的)。oracle

alter system set sga_max_size=1500m scope=spfile;

    若是错误设定sga_max_size>=memory_target(相等也不行,PGA至少须要大概十几M内存),则没法进行startup nomount,可是修改SGA命令又须要至少在startup nomount下面执行,因此必须使用另外一种方式修改该参数,使用startup nomount会出现异常:性能

ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 872415232.

这时候须要使用如下方式修改:spa

SQL> create pfile='/home/oracle/init0321.ora' from spfile;
File created.
SQL> !vi /home/oracle/init0321.ora -- 而后修改下面参数,如:

*.memory_target=1073741824code

*.sga_max_size=805306368blog

*.sga_target=805306368排序

SQL> startup nomount pfile='/home/oracle/init0321.ora'; -- 再使用pfile启动事务

SQL> create spfile from pfile='/home/oracle/init0321.ora'; --建立spfile内存

--下面再重启(默认使用spfile)get

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

注:

Pfile与spfile默认位置:

spfile  ${ORACLE_INSTALL_PATH}/product/11.2.0/dbhome_1/dbs/spfileorcl.ora

若是参数没指定pfile位置,则默认使用下面文件

pfile  ${ORACLE_INSTALL_PATH}/product/11.2.0/dbhome_1/dbs/ initorcl.ora

 

2、共享池分配与调整

1.查询高速缓存命中率,若是不命中比率接近1%,则系统须要调整提高性能。

SQL>select sum(pins) "请求数",sum(reloads) "不命中数" from v$librarycache;

 

2.数据字典高速缓冲,不命中比率应小于10%

SQL>select sum(gets) "请求存取数",sum(getmisses) "不命中数" from v$rowcache

若是出现性能瓶颈,可考虑提升share_pool_size。

 

3. 数据缓冲区

SQL> select name,value from v$sysstat where name in('db block gets','consistent gets','physical reads')

命中率=1-( physical reads/( db block gets+ consistent gets))

若是结果较小(好比小于80%),则须要调整初始化参数db_block_buffers(最大为65535)

 

3、排序区调整与共享链接

sort_area_size设定内存排序大小,每一个排序所占用大小由sort_area_retained_size肯定,不足则使用磁盘临时段排序(TEMP表空间),磁盘排序则消耗较长的时间。

方法: 长事务与大事务使用专用链接,对于短事务与小事务使用共享链接,在11g中,可由系统自动管理PGA,SGA的分配比例,设定可用内存便可。

缘由:共享链接中,若是用户请求数大于共享链接数,则会排队进行,则长事务会照成长时间的用户等待,性能降低,在OLTP,即通常性应用的联机事务处理中,长事务系统会比较慢。

相关文章
相关标签/搜索