Oracle進程結構對於很多剛剛接觸Oracle數據庫的新人來說還是比較陌生的概念,下面就為你詳細介紹Oracle進程結構方面的知識,供您參考。
進程是操作系統中的一種機制,它可執行一系列的操作步。在有些操作系統中使用作業(JOB)或任務(TASK)的術語。一個進程通常有它自己的專用存儲區。Oracle進程的體系結構設計使性能最大。
Oracle實例有兩種類型:單進程實例和多進程實例。
單進程ORACLE(又稱單用ORACLE)是一種數據庫系統,一個進程執行全部ORACLE代碼。由於ORACLE部分和客戶應用程序不能分別以進程執行,所以Oracle的代碼和用戶的數據庫應用是單個進程執行。
在單進程環境下的ORACLE 實例,僅允許一個用戶可存取。例如在MS-DOS上運行Oracle 。
多進程ORACLE實例(又稱多用戶ORACLE)使用多個進程來執行Oracle的不同部分 ,對於每一個連接的用戶都有一個進程。
在多進程系統中,進程分為兩類:用戶進程和ORACLE進程。當一用戶運行一應用程序,如PRO*C程序或一個ORACLE工具(如SQL*PLUS),為用戶運行的應用建立一個用戶進程。ORACLE進程又分為兩類:服務器進程和後台進程。服務器進程用於處理連接到該實例的用戶進程的請求。當應用和ORACELE是在同一台機器上運行,而不再通過網絡,一般將用戶進程和它相應的服務器進程組合成單個的進程,可降低系統開銷。然而,當應用和ORACLE運行在不同的機器上時,用戶進程經過一個分離服務器進程與Oracle通信。它可執行下列任務:
對應用所發出的SQL語句進行語法分析和執行。
從磁盤(數據文件)中讀入必要的數據塊到SGA的共享數據庫緩沖區(該塊不在緩沖區時)。
將結果返回給應用程序處理。
系統為了使性能最好和協調多個用戶,在多進程系統中使用一些附加進程,稱為後台進程。在許多操作系統中,後台進程是在實例啟動時自動地建立。一個Oracle實例可以有許多後台進程,但它們不是一直存在。