打印本文 打印本文 关闭窗口 关闭窗口
ORACLE 服務器的配置及優化
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1680  更新时间:2009/4/22 22:08:19  文章录入:mintao  责任编辑:mintao
  ORACLE 服務器的配置及優化

1.        在ORACLE中實現分布式快速存取和充實內存是很重要的。

        要不惜任何代價避免頁面調度和交換﹐每次都必須把系統全局區(SGA)放到內存。

將SGA放到內存中﹐在INIT.ORA中設置參數 PRE_PAGE_SGA

   PRE_PAGE_SGA=YES

2.        回卷段的竟爭會降低系統的性能。

SELECT  GETS,WAITS  FROM V$ROLLSTAT;

GETS代表回卷段被訪問的次數

WAITS代表進程等待回卷段中哪個進程的次數

如果GETS與WAITS的比大于2%表示存在竟爭問題

解決辦法是創建更多的回卷段。

有兩種類型的鎖存竟爭會產生嚴重的后果﹕立即鎖存(IMMEDIATE)和等待(WAIT)鎖存。

等待鎖存的計算公式﹕

     WAIT CONTENTION=(MISSES/(GETS+MISSES))*100

立即鎖存的計算公式﹕

     IMMEDIATE CONNECTION=(IMMEDIATE_MISSES/(IMMEDIATE_GETS+IMMEDIATE_MISSES))*100

如果任何一個值>0則就存在對鎖存的竟爭

如果發生恢復分配鎖存的竟爭﹐可以減小INIT.ORA中的LOG_SMALL_ENTRY_MAX_SIZE的參數值。如果發生恢復復制竟爭﹐可以增大INIT.ORA中的LOG_SIMULATANOUS_COPIES的參數值。

任何回卷段的OPTIMAL參數的設置不能太小﹐如果OPTIMAL<MINEXTENTS會降低系統的操作性能。

SELECT  CLASS,COUNT  FROM V$WAITSTAT  WHERE UPPER(CLASS) IN (‘SYSTEM UNDO HEADER)’,’SYSTEM  UNDO BLOCK’,

‘UNDO  HEADER’,’UNDO  BLOCK’);

    SELECT SUM(VALUE)  FROM  V$SYSSTAT  WHERE UPPER(NAME)

IN (‘DB  BLOCK  GETS’,’CONSISTENT  GETS’);

    第一條查詢中的每一類與第二條查詢中的比率最好<0.01

3.        提高緩沖區的效率。

SELECT  RELOADS,PINS FROM V$LIBRARYCACHE;

   RELOADS存入SQL命令被載入和分解的次數

PINS存入數據庫對SQL高速緩沖區查找一條語句的次數

如果RELOADS與PINS的比率大于1%則應增加INIT.ORA中的SHARED_POOL_SIZE的參數值。

   SELECT GETMISSES,GETS FROM V$ROWCACHE;

   如果RELOADS與PINS的比率大于10%則應增加INIT.ORA中的

SHARED_POOL_SIZE的參數值。

4.        用戶任何時點擁有的打開游標的最大數

修改INIT.ORA中的OPEN_CURSORS的參數值。

 與高速緩存有關的是游標在會話中的緩存方式。

 在INIT.ORA中增加 SESSION_CACHED_CURSORS=100

5.        SELECT SUM(GETS),SUM(GETMISSES)  FROM V$ROWCACHE;

必須使GETMISSES比率接近0, 為了優化性能﹐可以增加INIT.ORA中的參數SHARED_POLL_SIZE和DB_BLOCK_BUFFERS的值。

6.        SELECT NAME,VALUE FROM V$SYSSTAT WHERE UPPER(NAME) IN

(‘SORTS(MEMORY)’,’SORTS(DISK)’);

如果用于磁盤上的排序量較高﹐可以增加INIT.ORA中的SORT_AREA_SIZE的值。

7.        LGWR的日志文件如果切換太快會影響數據庫的活動﹐導致性能的下將。

在INIT.ORA 中 CHECKPOINT_PROCESS=TRUE

               LOG_CHECKPOINT_INTERVAL=10000

               LOG_CHECKPOINT_TIMEOUT=1800

8.        多線程服務器(MTS)的配置

1>      MTS_SERVICE

這是調度程序用來向SQL*NET監聽器注冊服務的服務名。

最好取和SID相同的名稱。

2>      MTS_DISPATCHERS

配置調度進程的數目。

3>      MTS_MAX_DISPATCHERS

   配置調度進程的最大數目。

4>      MTS_SERCERS

啟動共享服務器的最初數目。

5>      MTS_MAX_SERVERS

設置共享服務器的最大數目。

6>      MTS_LISTENTER_ADDRESS

       這是調度程序用來向SQL*NET監聽器注冊服務的服務名的地址。

一個MTS的配置例子:

在INIT.ORA中

mts_listener_address=’(ADDRESS=(PROTOCOL=TCP)(KEY=MYDB))’

mts_dispatchers=’tcp,10’

mts_dispatchers=’ipx,2’

mts_max_dispatchers=10

mts_max_servers=10

mts_servers=2

在LISTENER.ORA中應包括下類似的內容:

LISTENER=

  (ADDRESS_LIST=

     (ADDRESS=

      (PROTOCOL=

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口