首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫連線架構完整分析:專用伺服器 vs 共用伺服器

     編輯:Oracle 資料庫相關知識

前言

Oracle 多行程實例支援三種連線配置,本文詳細比較單一用戶程序、專用伺服器、共用伺服器(MTS)三種架構的運作原理與適用場景。

三種架構比較

架構描述適用場景
用戶/伺服器合一應用與 Oracle 核心在同一行程,透過程式介面隔離支援單一行程隔離的 OS,如早期單任務系統
專用伺服器每個用戶行程對應一個專用伺服器行程一般客戶/伺服器環境,工作站連接中央資料庫
共用伺服器 (MTS)多用戶行程共享少量共用伺服器行程,透過調度程序分派高併發連線、資源受限、Web 應用連線池

專用伺服器架構

  • 用戶行程(Client)↔ 專用伺服器行程(Server Process)一對一。
  • 可跨機器(透過網路)或同機運行。
  • 又稱「兩任務 Oracle」。

共用伺服器架構核心元件

  1. 網路接收器:監聽連線請求,判斷用戶可用共用伺服器則回傳調度程序位址,否則建立專用伺服器。
  2. 調度程序:每種網路協定至少一個。接收用戶請求放入 SGA 請求佇列(共用),從 回應佇列(每調度程序一個)取回結果返回用戶。
  3. 共用伺服器行程:從請求佇列取出工作(FIFO),執行資料庫呼叫,結果放入調度程序回應佇列。不綁定特定用戶,SGA 中儲存 Session 狀態(UGA),僅保留堆疊與行程變數。

動態調整機制

  • Oracle 依請求佇列長度動態增減共用伺服器行程數。
  • 請求佇列對所有調度程序共享,實現負載平衡。

優缺點權衡

優點缺點
大幅減少行程數,降低記憶體與 CPU 開銷單一長時間查詢可能佔用共用伺服器,影響其他用戶
支援更多同時連線UGA 在 SGA 中,需配置 Large Pool 避免共用池爭用

小結

專用伺服器適合一般 OLTP;共用伺服器適合連線數極大、會話輕量的 Web 環境。9i+ 建議搭配 LARGE_POOL_SIZE 獨立配置 UGA 空間。

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