首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Shared Server 進階:佇列監控、Dispatcher 動態擴容與 DECnet/TCP 協定差異

     編輯:Oracle 資料庫基礎

延續前文,深入剖析 Shared Server 請求佇列監控、Dispatcher 動態擴容操作,並說明不同網路協定(DECnet vs TCP)的負載特性差異。

一、Dispatcher 佇列等待時間監控

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:總回應數。
  • DECnet 協定通常 < 0.5% 忙碌;TCP 協定約 3% 忙碌。超過 50% 即需擴容。

二、動態增加 Dispatcher 實作

  1. SQL*DBA 圖形介面:「Configure Multi-Threaded Dispatchers」對話框。
  2. 命令列:ALTER SYSTEM SET MTS_DISPATCHERS='(PROTOCOL=TCP)(DISPATCHERS=3)'。

前置條件:MTS_MAX_DISPATCHERS 需預留足夠上限(預設 5)。

三、Shared Server 請求佇列監控

SELECT DECODE(totalq,0,'No Requests',
       wait/totalq || ' hundredths of seconds') "Avg Wait Per Request"
FROM V$QUEUE WHERE type = 'COMMON';
  • WAIT:佇列總等待時間(百分之一秒)。
  • TOTALQ:總請求數。

四、確認運行中 Shared Server 數量

SELECT COUNT(*) "Shared Server Processes"
FROM V$SHARED_SERVER WHERE STATUS != 'QUIT';

五、協定選擇與效能建議

協定典型忙碌度適用場景
DECnet< 0.5%傳統 OpenVMS/DEC 環境
TCP/IP~3%現代跨平台標準,推薦首選

TCP/IP 通用性最佳,效能穩定;新架構優先採用 TCP。Dispatcher 數量依實際佔用率與等待時間彈性調整,而非死板配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved