延續前文,深入剖析 Shared Server 請求佇列監控、Dispatcher 動態擴容操作,並說明不同網路協定(DECnet vs TCP)的負載特性差異。
SELECT network "protocol",
DECODE(SUM(totalq),0,'No Responses',
SUM(wait)/SUM(totalq) || ' hundredths of seconds') "Avg Wait Per Response"
FROM V$QUEUE q, V$DISPATCHER d
WHERE q.type = 'DISPATCHER' AND q.paddr = d.paddr
GROUP BY network;
WAIT:百分之一秒單位總等待時間。TOTALQ:總回應數。ALTER SYSTEM SET MTS_DISPATCHERS='(PROTOCOL=TCP)(DISPATCHERS=3)'。前置條件:MTS_MAX_DISPATCHERS 需預留足夠上限(預設 5)。
SELECT DECODE(totalq,0,'No Requests',
wait/totalq || ' hundredths of seconds') "Avg Wait Per Request"
FROM V$QUEUE WHERE type = 'COMMON';
WAIT:佇列總等待時間(百分之一秒)。TOTALQ:總請求數。SELECT COUNT(*) "Shared Server Processes"
FROM V$SHARED_SERVER WHERE STATUS != 'QUIT';
| 協定 | 典型忙碌度 | 適用場景 |
|---|---|---|
| DECnet | < 0.5% | 傳統 OpenVMS/DEC 環境 |
| TCP/IP | ~3% | 現代跨平台標準,推薦首選 |
TCP/IP 通用性最佳,效能穩定;新架構優先採用 TCP。Dispatcher 數量依實際佔用率與等待時間彈性調整,而非死板配置。