Oracle 體系結構 SGA 和PGA 總結

bitifi發表於2015-09-22

SGA PGA

一、SGA 

SGA是由Oracle 分個配的共享記憶體結構,包含一個資料庫例項的資料和控制資訊,SGA資料供所有的伺服器程式和後臺程式共享。所以又稱為共享全域性區。該記憶體區隨著資料庫例項的建立而分配,隨例項的終止而釋放。

 

SGA 主要由資料高速緩衝區、共享池、重做日誌緩衝區、大池、JAVA池、流池、和其他結構構成

 

1、資料庫高速緩衝區

  A   功能:

資料高速緩衝區儲存是最近從資料檔案中檢索出來的資料,供所有使用者共享,當使用者要運算元據庫中的資料時,先由伺服器程式將資料從磁碟的資料檔案讀取到資料高速緩衝區中,然就在緩衝區中進行處理,使用者處理後的結果被儲存到高速緩衝區中,最後由資料庫寫入程式 DBWN 寫到磁碟的資料檔案永久儲存。

 B  快取塊的型別:

   髒快取塊(Dirty buffers)我們資料塊中儲存的是已經被修改過的塊。

   空閒資料塊(free buffer) 空閒資料塊不包含任何資料,它們等待後臺程式或伺服器程式項其中寫入資料。

   命中快取塊(pinned buffer)是指那些正在被使用的資料塊,同時還有很多會壞等在修改。

   乾淨資料塊(clean buffer) 是指那些當前沒有被使用分資料塊,即將被換出記憶體的快取塊,

  C 資料高速緩衝區的型別:

  Keep 緩衝池:在記憶體中保留的資料塊,這些資料塊不會被換出記憶體。

  Recycle 緩衝池:迴圈使用的緩衝池

  Default 緩衝池:包含已經被分配的資料塊。

 

  D 快取快的管理:

 髒快取快列表: 該列表中包含那些已經被修改但還沒有寫入資料檔案的我們快取快

 LRU:該列表中包含所有的髒快取快,命中快取塊。乾淨快取塊和那些還沒有移動到髒快取塊列表的髒快取塊。在該列表中,最近被訪問的快取資料塊被移動到列表的頭部。而其他快取塊向列表尾部移動,最近最少的訪問的快取塊最先被移除LRU 列表,遵循 先進先出的原則。

  E 快取命中:當使用者程式查詢的要訪問的資料在高速緩衝區中可以找到這樣就稱之為快取命中。

  F 快取失敗:相反就是沒有在資料快取記憶體區找到使用者程式想要訪問的資料 。

 

  G 資料高速緩衝區的大小

 標準緩衝區的大小由引數 DB_CACHE_SIZE 設定。非標準區由引數   DB_nK_CACHE_SIZE 設定。

高速緩衝區當然不是越大越好,它們都是有個限制的 

可以透過檢視 v$SGA_DYNAMEIC_COMPONENTS 檢視構成。

可以使用alter system 語句調整資料快取記憶體區

Alter system set db_cache_size=200,m

2.重做日誌緩衝區

 首先重做日誌緩衝區是對資料庫進行修改操作時生成的重做記錄。

重做日誌緩衝區是一個迴圈緩衝區,在使用時從頂端向底部寫入資料,然後在返回到緩衝區的起始點。

重做日誌緩衝區的大小隨資料庫效能有較大的影響,較大的重做日誌緩衝區可以減少對重做日誌檔案的寫入次數,

3.共享池

 A 庫快取 (library cache)

 庫快取就是快取最近被解釋並執行過的SQL PL/SQL語句 、以及執行計劃。以提高SQL 的執行效率。

 庫快取區主要包括 SQL 工作區的 PL/SQL 工作區的兩個部分;

 B資料字典快取區

資料字典主要的儲存的就是最常用的資料字典資訊,如資料庫物件資訊,賬戶資訊,資料庫結構資訊等, 當訪問的資料庫時。可以從資料庫字典快取中獲得物件是否存在,使用者是否有操作許可權

  共享池的大小 可以透過alter  system  set shared_pool_size=50m.

4大型池

主要為Oracle 共享伺服器、伺服器I/O 程式資料庫備份於回覆操作。執行有大量排序的SQL 語句。如果沒有配置配置大型池,上述操作將在共享池或PGA中分配,影響共享池和 PGA的使用效率。

Alter system set large_pool_size=10m.

 

5JAVA 池  stream 池 就不在說了 。

 

二 PGA

1.PGA:在建立一個伺服器程式的同事要為該伺服器程式分配一個記憶體區。該記憶體被稱為程式全域性區 PGA PGA 是個私有的記憶體區不能共享。每個伺服器程式稚嫩而過訪問自己的PGA 

2.PGA由下列4部分組成

 排序區:存放排序操作所產生的臨時資料

 遊標資訊區:存放執行遊標操作時所產生的資料。

 會話資訊區:儲存使用者會話所具有的許可權,角色,效能統計資訊。

 堆疊區:用於保護會話過程中的繫結變數,會話變數等資訊。

在不同的伺服器連線模式中。PGA的分佈略有不同。在共享伺服器模式下面會話資訊存在SGA 中。如果有大池的話。就存放在大池。否則就存放在共享池中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-1805902/,如需轉載,請註明出處,否則將追究法律責任。

相關文章