Oracle

Oracle 使用什麼來處理客戶端連接(程序或執行緒)?

  • August 5, 2015

SQL Server 2016MySQL 5.7使用基於執行緒的連接處理。

PostgreSQL 9.5為每個單獨的連接使用一個作業系統程序。

根據Oracle 12c 文件,不清楚是使用基於執行緒的模型還是基於程序的模型。那麼Oracle是如何處理使用者連接的呢?

高達 11g 的 Oracle 在 Windows 上使用基於執行緒的模型,在 Linux 上使用基於程序的模型。

從手冊中引用:

程序是作業系統中可以執行一系列步驟的機制。該機制取決於作業系統。例如,在 Linux 上,Oracle 後台程序就是 Linux 程序。在 Windows 上,Oracle 後台程序是程序內的執行執行緒

您可以選擇啟用所謂的“共享程序”,其中一個程序處理多個客戶端連接。將其視為一種數據庫內連接池。在 Windows 上,這意味著單個執行緒處理多個連接,在 Linux 上,這意味著單個程序處理多個連接。

從 12c 開始,您可以選擇為 Linux 安裝啟用基於執行緒的模型。

從手冊中引用:

在 Oracle Database 12c 之前的版本中,Oracle 程序不作為執行緒在 UNIX 和 Linux 系統上執行。從 Oracle Database 12c 開始,多執行緒 Oracle Database 模型使 Oracle 程序能夠作為作業系統執行緒在不同的地址空間中執行

引用自:https://dba.stackexchange.com/questions/109087