閱讀全文請點擊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é)的。