高手談Oracle減少共享服務(wù)器進(jìn)程
在向大家詳細(xì)介紹Oracle減少共享服務(wù)器進(jìn)程之前,首先讓大家了解下DEC.net,然后全面介紹Oracle減少共享服務(wù)器進(jìn)程,希望對大家有用。DEC.net分發(fā)進(jìn)程接近0.5%時(shí)間是忙的,TCP分發(fā)進(jìn)程接近3%時(shí)間是忙的。若占用率超過50%,則應(yīng)該用增加調(diào)度進(jìn)程的網(wǎng)絡(luò)協(xié)議來改善性能。若要檢查等待響應(yīng)時(shí)間的增長情況,可通過查詢動(dòng)態(tài)性能表V$QUEUE(需有SELECT ANY TABLE特權(quán))來檢查。例如:
- SQL>SELECT network "protocol",
- 2>DECODEE(SUM(totalq),0,'No Responses'),
- 3>SUM(wait)/SUM(totalq)||
- 4>'hundredths of seconds,"Average Wait Time Per Response"
- 5>FROM V$QUEUE q,V$DISPATCHER d
- 6>WHEEE q.type='DISPATCHER' AND q.paddr=d.paddr
- 7>GROUP BY network;
其中表V$QUEUE中的wait和totaq列的含義如下:
◆ wait:它表示1%秒單位時(shí)間內(nèi)所有已在隊(duì)列中等待響應(yīng)的時(shí)間。
◆ totalq:表示在隊(duì)列中的總的響應(yīng)次數(shù)。
可通過以下辦法來增加調(diào)度進(jìn)程:
(1)用SQL * DBA的“Configure Multi-Threaded Dipatchers”對話框。
(2)用具有MTS_DISPATCHER參數(shù)的ALTER SYSTEM命令。
調(diào)度進(jìn)程的總數(shù)由初始化參數(shù)MTS_MAX-DIPATCHER限制,在增加調(diào)度進(jìn)程之前需要增加該參數(shù),缺省值為5,最大值依賴操作系統(tǒng)。
Oracle減少共享服務(wù)器進(jìn)程的爭用
要Oracle減少共享服務(wù)器進(jìn)程的爭用,首先需確定是否有爭用。請求隊(duì)列中請求等待時(shí)間的增長反映對共享服務(wù)器進(jìn)程的爭用。這可以通過查詢動(dòng)態(tài)性能表V$SQUEUE(需有SELECT ANY TABLE特權(quán))來確定是否有爭用。查詢語句的格式如下:
- SQL>SELECT network "protocol", DECODE(totalq,o,'No Requests',
- 2>wait/totalq||,'hundreadths of seconds',) "Average Wait Time Per Requests"
- 3>FROM V$QUEUE
- 4>WHERE typc='COMMON';
其中表V$QUEUE中的wait和totalq列的含義如下:
◆ wait:隊(duì)列中1%秒單位時(shí)間內(nèi)所有請求的等待時(shí)間。
◆ totalq:是隊(duì)列中請求的總數(shù)。
用如下的查詢可以確定有多少個(gè)服務(wù)器進(jìn)程在運(yùn)行:
- SQL>SELECT COUNT(*) "Shared Server Proccess"
- 2>FROM V$ SHARED_SERVERS
- 3>WHERE status!='QUIT';
【編輯推薦】