oracle sga pga mysql_Oracle 体系结构 SGA 和PGA 总结
SGA?和PGA
一、SGA
SGA是由Oracle分個(gè)配的共享內(nèi)存結(jié)構(gòu),包含一個(gè)數(shù)據(jù)庫實(shí)例的數(shù)據(jù)和控制信息,SGA數(shù)據(jù)供所有的服務(wù)器進(jìn)程和后臺進(jìn)程共享。所以又稱為共享全局區(qū)。該內(nèi)存區(qū)隨著數(shù)據(jù)庫實(shí)例的創(chuàng)建而分配,隨實(shí)例的終止而釋放。
SGA?主要由數(shù)據(jù)高速緩沖區(qū)、共享池、重做日志緩沖區(qū)、大池、JAVA池、流池、和其他結(jié)構(gòu)構(gòu)成
1、數(shù)據(jù)庫高速緩沖區(qū)
A???功能:
數(shù)據(jù)高速緩沖區(qū)存儲是最近從數(shù)據(jù)文件中檢索出來的數(shù)據(jù),供所有用戶共享,當(dāng)用戶要操作數(shù)據(jù)庫中的數(shù)據(jù)時(shí),先由服務(wù)器進(jìn)程將數(shù)據(jù)從磁盤的數(shù)據(jù)文件讀取到數(shù)據(jù)高速緩沖區(qū)中,然就在緩沖區(qū)中進(jìn)行處理,用戶處理后的結(jié)果被存儲到高速緩沖區(qū)中,最后由數(shù)據(jù)庫寫入進(jìn)程?DBWN寫到磁盤的數(shù)據(jù)文件永久保存。
B??緩存塊的類型:
臟緩存塊(Dirty?buffers)咱數(shù)據(jù)塊中保存的是已經(jīng)被修改過的塊。
空閑數(shù)據(jù)塊(free?buffer)空閑數(shù)據(jù)塊不包含任何數(shù)據(jù),它們等待后臺進(jìn)程或服務(wù)器進(jìn)程項(xiàng)其中寫入數(shù)據(jù)。
命中緩存塊(pinned?buffer)是指那些正在被使用的數(shù)據(jù)塊,同時(shí)還有很多會壞等在修改。
干凈數(shù)據(jù)塊(clean?buffer)是指那些當(dāng)前沒有被使用分?jǐn)?shù)據(jù)塊,即將被換出內(nèi)存的緩存塊,
C?數(shù)據(jù)高速緩沖區(qū)的類型:
Keep?緩沖池:在內(nèi)存中保留的數(shù)據(jù)塊,這些數(shù)據(jù)塊不會被換出內(nèi)存。
Recycle?緩沖池:循環(huán)使用的緩沖池
Default?緩沖池:包含已經(jīng)被分配的數(shù)據(jù)塊。
D?緩存快的管理:
臟緩存快列表:?該列表中包含那些已經(jīng)被修改但還沒有寫入數(shù)據(jù)文件的咱緩存快
LRU:該列表中包含所有的臟緩存快,命中緩存塊。干凈緩存塊和那些還沒有移動到臟緩存塊列表的臟緩存塊。在該列表中,最近被訪問的緩存數(shù)據(jù)塊被移動到列表的頭部。而其他緩存塊向列表尾部移動,最近最少的訪問的緩存塊最先被移除LRU列表,遵循?先進(jìn)先出的原則。
E?緩存命中:當(dāng)用戶進(jìn)程查找的要訪問的數(shù)據(jù)在高速緩沖區(qū)中可以找到這樣就稱之為緩存命中。
F?緩存失敗:相反就是沒有在數(shù)據(jù)高速緩存區(qū)找到用戶進(jìn)程想要訪問的數(shù)據(jù)?。
G?數(shù)據(jù)高速緩沖區(qū)的大小
標(biāo)準(zhǔn)緩沖區(qū)的大小由參數(shù)?DB_CACHE_SIZE設(shè)定。非標(biāo)準(zhǔn)區(qū)由參數(shù)DB_nK_CACHE_SIZE設(shè)置。
高速緩沖區(qū)當(dāng)然不是越大越好,它們都是有個(gè)限制的
可以通過視圖?v$SGA_DYNAMEIC_COMPONENTS查看構(gòu)成。
可以使用alter?system語句調(diào)整數(shù)據(jù)高速緩存區(qū)
Alter?system?set?db_cache_size=200,m
2.重做日志緩沖區(qū)
首先重做日志緩沖區(qū)是對數(shù)據(jù)庫進(jìn)行修改操作時(shí)生成的重做記錄。
重做日志緩沖區(qū)是一個(gè)循環(huán)緩沖區(qū),在使用時(shí)從頂端向底部寫入數(shù)據(jù),然后在返回到緩沖區(qū)的起始點(diǎn)。
重做日志緩沖區(qū)的大小隨數(shù)據(jù)庫性能有較大的影響,較大的重做日志緩沖區(qū)可以減少對重做日志文件的寫入次數(shù),
3.共享池
A?庫緩存?(library?cache)
庫緩存就是緩存最近被解釋并執(zhí)行過的SQL、PL/SQL語句?、以及執(zhí)行計(jì)劃。以提高SQL的執(zhí)行效率。
庫緩存區(qū)主要包括?SQL工作區(qū)的PL/SQL工作區(qū)的兩個(gè)部分;
B數(shù)據(jù)字典緩存區(qū)
數(shù)據(jù)字典主要的保存的就是最常用的數(shù)據(jù)字典信息,如數(shù)據(jù)庫對象信息,賬戶信息,數(shù)據(jù)庫結(jié)構(gòu)信息等,?當(dāng)訪問的數(shù)據(jù)庫時(shí)。可以從數(shù)據(jù)庫字典緩存中獲得對象是否存在,用戶是否有操作權(quán)限
共享池的大小?可以通過alter??system??set?shared_pool_size=50m.
4大型池
主要為Oracle共享服務(wù)器、服務(wù)器I/O進(jìn)程數(shù)據(jù)庫備份于回復(fù)操作。執(zhí)行有大量排序的SQL語句。如果沒有配置配置大型池,上述操作將在共享池或PGA中分配,影響共享池和PGA的使用效率。
Alter?system?set?large_pool_size=10m.
5JAVA?池stream池?就不在說了?。
二?PGA
1.PGA:在創(chuàng)建一個(gè)服務(wù)器進(jìn)程的同事要為該服務(wù)器進(jìn)程分配一個(gè)內(nèi)存區(qū)。該內(nèi)存被稱為程序全局區(qū)PGA。PGA是個(gè)私有的內(nèi)存區(qū)不能共享。每個(gè)服務(wù)器進(jìn)程稚嫩而過訪問自己的PGA
2.PGA由下列4部分組成
排序區(qū):存放排序操作所產(chǎn)生的臨時(shí)數(shù)據(jù)
游標(biāo)信息區(qū):存放執(zhí)行游標(biāo)操作時(shí)所產(chǎn)生的數(shù)據(jù)。
會話信息區(qū):保存用戶會話所具有的權(quán)限,角色,性能統(tǒng)計(jì)信息。
堆棧區(qū):用于保護(hù)會話過程中的綁定變量,會話變量等信息。
在不同的服務(wù)器連接模式中。PGA的分布略有不同。在共享服務(wù)器模式下面會話信息存在SGA中。如果有大池的話。就存放在大池。否則就存放在共享池中。
總結(jié)
以上是生活随笔為你收集整理的oracle sga pga mysql_Oracle 体系结构 SGA 和PGA 总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql设计经纬度表_MySQL经纬度
- 下一篇: mac mysql 安装日志_Mac 安