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,即通常性應用的聯機事務處理中,長事務系統會比較慢。

相關文章
相關標籤/搜索