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

Oracle 網路調優全攻略:sqlnet.ora、tnsnames.ora、protocol.ora 關鍵參數深度解析

     編輯:Oracle 資料庫基礎

調優層級界定

Oracle Net 屬 OSI 第 3 層 (網路層),DBA 可控制 封包大小 (SDU/TDU) 與頻率,底層 TCP/IP 參數 (MTU、視窗大小) 需網管配合。

五大核心參數

參數檔案作用建議值/策略
tcp.nodelayprotocol.ora停用 Nagle 演算法,立即發送小封包YES (高互動、低延遲場景);大量批次傳輸建議 NO
automatic_ipcsqlnet.ora (Server)本地連線自動改用 IPC 繞過網路層資料庫伺服器設 ON;純客戶端設 OFF
SDUtnsnames.ora / listener.ora發送緩衝區大小 (Session Data Unit)≤ MTU (乙太網 1514、Token Ring 4202);寬帶設等於 MTU
TDUtnsnames.ora / listener.ora傳輸緩衝區大小 (Transport Data Unit)理想 = SDU;預設 2048,上限 32767
QUEUESIZElistener.ora監聽器連線佇列長度高併發設 32~128;受 OS 限制 (部分 Unix 限 5);MTS 建議用 DISPATCHERS 替代

參數配置實例

protocol.ora

tcp.nodelay = yes

tnsnames.ora (客戶端) / listener.ora (伺服器端)

ORCL =
  (DESCRIPTION =
    (SDU=8192)(TDU=8192)
    (ADDRESS = (PROTOCOL=TCP)(HOST=dbhost)(PORT=1521))
    (CONNECT_DATA = (SERVICE_NAME=orcl))
  )

listener.ora 隊列

LISTENER =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL=TCP)(HOST=marvin)(PORT=1521)(QUEUESIZE=64))
  )

場景化調優建議

  • 低延遲 OLTP:tcp.nodelay=yes + SDU=TDU=MTU + automatic_ipc=on (本地)。
  • 高吞吐批次/數倉:tcp.nodelay=no + SDU=TDU=32767 (最大化承載)。
  • 撥號/高延遲連線:縮小 SDU/TDU (如 1024) 減少重傳代價。
  • MTS/共享伺服器:在 DISPATCHERS 參數中指定 (SDU=...)(TDU=...)。

驗證方法

  1. tnsping 確認連線參數生效。
  2. 啟用客戶端/伺服器端 SQL*Net Trace (trace_level_client=16) 觀察封包大小。
  3. 對比調整前後 V$SESSION_WAIT 中 SQL*Net message from client、SQL*Net more data to client 等待時間。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved