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