程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 高手談Oracle減少共享服務器進程

高手談Oracle減少共享服務器進程

編輯:Oracle數據庫基礎

在向大家詳細介紹Oracle減少共享服務器進程之前,首先讓大家了解下DEC.net,然後全面介紹Oracle減少共享服務器進程,希望對大家有用。DEC.Net分發進程接近0.5%時間是忙的,TCP分發進程接近3%時間是忙的。若占用率超過50%,則應該用增加調度進程的網絡協議來改善性能。若要檢查等待響應時間的增長情況,可通過查詢動態性能表V$QUEUE(需有SELECT ANY TABLE特權)來檢查。例如:

  1. SQL>SELECT network "protocol",  
  2. 2>DECODEE(SUM(totalq),0,'No Responses'),  
  3. 3>SUM(wait)/SUM(totalq)||  
  4. 4>'hundredths of seconds,"Average Wait Time Per Response"  
  5. 5>FROM V$QUEUE q,V$DISPATCHER d  
  6. 6>WHEEE q.type='DISPATCHER' AND q.paddr=d.paddr  
  7. 7>GROUP BY network; 

其中表V$QUEUE中的wait和totaq列的含義如下:
◆ wait:它表示1%秒單位時間內所有已在隊列中等待響應的時間。
◆ totalq:表示在隊列中的總的響應次數。

可通過以下辦法來增加調度進程:
(1)用SQL * DBA的“Configure Multi-Threaded Dipatchers”對話框。
(2)用具有MTS_DISPATCHER參數的ALTER SYSTEM命令。

調度進程的總數由初始化參數MTS_MAX-DIPATCHER限制,在增加調度進程之前需要增加該參數,缺省值為5,最大值依賴操作系統。

Oracle減少共享服務器進程的爭用

要Oracle減少共享服務器進程的爭用,首先需確定是否有爭用。請求隊列中請求等待時間的增長反映對共享服務器進程的爭用。這可以通過查詢動態性能表V$SQUEUE(需有SELECT ANY TABLE特權)來確定是否有爭用。查詢語句的格式如下:

  1. SQL>SELECT network "protocol", DECODE(totalq,o,'No Requests',  
  2. 2>wait/totalq||,'hundreadths of seconds',) "Average Wait Time Per Requests"  
  3. 3>FROM V$QUEUE  
  4. 4>WHERE typc='COMMON'; 

其中表V$QUEUE中的wait和totalq列的含義如下:
◆ wait:隊列中1%秒單位時間內所有請求的等待時間。
◆ totalq:是隊列中請求的總數。
用如下的查詢可以確定有多少個服務器進程在運行:

  1. SQL>SELECT COUNT(*) "Shared Server Proccess"  
  2. 2>FROM V$ SHARED_SERVERS  
  3. 3>WHERE status!='QUIT'; 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved