一對一:每個客戶端連接對應一個專用服務器進程,進程獨享 PGA(Program Global Area),包含排序區、會話信息、堆棧等。
pga_aggregate_target:所有服務器進程 PGA 總量上限(示例 10MB)。workarea_size_policy = AUTO:自動管理排序/哈希區大小。sort_area_size:手動模式下的排序區大小(示例 512KB)。當排序數據超出 PGA 排序區,Oracle 將數據分段寫入臨時表空間進行外部排序,完成後再合併返回。
| 優點 | 缺點 |
|---|---|
| 響應快、無排隊、適合長事務/大事務 | 進程數受限於 OS/硬件,大量併發時內存壓力大 |
多對一:少量共享服務器進程服務大量客戶端。實例啟動時預分配進程池,調度器按隊列分發請求,請求結束即釋放進程。
sort_area_size 從 SGA 的 Large Pool 分配。| 優點 | 缺點 |
|---|---|
| 支撐更高併發、節省內存、提高資源利用率 | 調度開銷大、不適合長事務、響應延遲較高 |
| 業務類型 | 推薦模式 | 理由 |
|---|---|---|
| OLTP 核心交易(長事務、高一致性) | 專用連接 | 避免排隊、保證響應 |
| Web 門戶、報表查詢(短事務、高併發) | 共享連接 | 節省進程、支撐萬級連接 |
| 混合負載 | 專用+共享混合 | 關鍵服務走專用,邊緣服務走共享 |
「共享連接與長事務背道而馳。若共享進程被長事務佔用,整個隊列阻塞,性能雪崩。」—— 生產案例
若必須在 OLTP 中使用共享連接,請嚴格限制事務時長、拆分大事務、監控 V$SHARED_SERVER 隊列長度。
專用連接 = 性能優先;共享連接 = 規模優先。根據事務長短、併發量、硬件資源三維綜合評估,必要時採用混合部署。