Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)

閱讀全文請點擊http://click.aliyun.com/m/1000004613/

?Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)包括:

數(shù)據(jù)庫實例,數(shù)據(jù)庫文件,用戶進(jìn)程,服務(wù)器進(jìn)程,參數(shù)文件,密碼文件,歸檔日志文件等。

如圖


Intance(數(shù)據(jù)庫實例)

數(shù)據(jù)庫實例是由內(nèi)存區(qū)和后臺進(jìn)程組成。其中內(nèi)存區(qū)稱為SGA,而PGA實際上是指后臺進(jìn)程所使用的內(nèi)存,而并不是指后臺進(jìn)程。

上圖表明的是數(shù)據(jù)庫的體系結(jié)構(gòu),而由SGA和PGA共同組成的部分我們也可以稱之為oracle的內(nèi)存結(jié)構(gòu)。

SGA(系統(tǒng)全局區(qū))

SGA中包含幾個非常重要的內(nèi)存區(qū),database buffer cache(庫高速緩存),shared pool(共享池),redo log buffer cache(重做日志緩存),large pool(大池),java pool(java池)。

下面會詳細(xì)的說明SGA中包含這幾個重要的內(nèi)存區(qū)的含義以及作用。

shared pool

shared pool的作用是共享SQL或者PL/SQL代碼。在網(wǎng)絡(luò)服務(wù)中,為了加速網(wǎng)絡(luò)中的訪問,會在外接搭建一臺緩存服務(wù)器,使經(jīng)常使用的網(wǎng)站可以快速的訪問,直接可以從緩

存服務(wù)器中獲得。同樣的道理,shared pool通過共享SQL和PL/SQL代碼,會將經(jīng)常使用的代碼緩存在緩存區(qū)中,當(dāng)再次使用代碼使,反應(yīng)效率會大幅度增加。

shared pool分為兩個部分,data dict cache(庫高速緩存)和library cache(數(shù)據(jù)字典高速緩存)

data dict cache中就儲存了最近使用過的SQL和PL/SQL的代碼,并且使用LRU算法管理庫高速緩存區(qū)。

(LRU算法的基本思想:1 把第一段時間內(nèi)沒有被使用過的語句清除 2 一旦緩存區(qū)滿,把很少使用的執(zhí)行計劃和解析樹清除)通過LRU算法來解決data dict cache容量不足。

library cache中儲存了數(shù)據(jù)文件,表,索引,列,用戶,權(quán)限信息和其他一些數(shù)據(jù)庫對象的定義。在SQL語句的解析過程中,需要這些信息來解析用戶名和權(quán)限等,所以引進(jìn)library

cache緩存這些信息來提高查詢的響應(yīng)時間。

另外,data dict cache 和 library cache 都不能直接設(shè)置大小。需要通過調(diào)節(jié)shared pool 的大小來進(jìn)行調(diào)節(jié)。

database buffer cache

database buffer cache儲存了最近從數(shù)據(jù)文件讀入的數(shù)據(jù)塊信息或用戶更改后需要寫回數(shù)據(jù)庫的數(shù)據(jù)信息,此時沒有提交的數(shù)據(jù)稱為臟數(shù)據(jù)。

這樣的執(zhí)行方法也會加快數(shù)據(jù)庫的訪問,如果用戶需要讀取的數(shù)據(jù)已經(jīng)在database buffer cache中有了,那么直接從中讀取即可,從內(nèi)存讀取要比從物理讀取速度要快的多。

database buffer cache也采用了LRU算法進(jìn)行管理。

redo log buffer cache

當(dāng)用戶執(zhí)行了INSERT,UPDATE,DELETE,CREATE,ALTER,DROP操作后,這些變化的數(shù)據(jù)會寫入database buffer cache中,寫入之前,其實是先寫入redo log buffer cache

中的。

具體的說,當(dāng)用戶執(zhí)行了修改等動作之后,進(jìn)行commit時,oracle會將數(shù)據(jù)先寫入redo log buffer cache中,這樣在進(jìn)行數(shù)據(jù)恢復(fù)時,就知道哪些數(shù)據(jù)需要前滾,哪些需要后滾

了。redo log buffer cache就是保存數(shù)據(jù)變化信息。redo log buffer cache是循環(huán)使用并可動態(tài)調(diào)節(jié)的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容