SGA區查詢的基本語句

tonywi888發表於2007-05-24

建立例項時,oracle為SGA區分配記憶體;終止例項時,釋放SGA區佔用的記憶體。

SGA區可以分為幾個部分:

一、資料快取記憶體

儲存最近從資料檔案中讀取的資料塊,其中的資料可以被所用的使用者共享。由許多大小相等的快取塊組成。這些快取塊分為三類:

髒快取塊:儲存的是已經被修改過的快取塊。要被dbwr程式寫入資料檔案的,以便永久的保留修改的結果。

空閒快取塊:其中沒有資料,它在等待被寫入資料。

命中快取塊:儲存的是最近正在被訪問的快取塊。始終被儲存在資料快取記憶體中,不會被寫入資料檔案。

Oracle透過兩個列表管理:

DIRTY列表儲存已經被修改但沒有被寫入資料檔案的髒快取塊。

LRU(Least Recently Used)儲存所有空閒快取塊、以及還沒有被移入DIRTY中的髒快取塊。

二、重做日誌快取記憶體

執行Insert,Update,Delete對錶進行修改時,或執行Create,alter,drop時,生成重做記錄。

大小有LOG_BUFFER初始化引數指定。

查詢重做日誌快取的大小

sql> show parameter log_buffer;

查詢使用者程式等待重做日誌快取的次數

sql> select name,value from v$sysstat where name='redo buffer allocation retries';

三、共享池

由資料字典快取、庫快取組成。

大小有SHARED_POOL_SIZE初始化引數指定。

查詢共享池大小

sql> show parameter shared_pool_size;

查詢共享池中資料字典快取的成功與失敗的次數。

sql> select sum(gets), sum(getmisses) from v$rowcache;

四、大池

需要大記憶體的操作提供相對獨立的記憶體空間,是一個可選的記憶體結構

需要大量記憶體的操作包括:

資料庫備份和恢復,如使用RMAN在磁帶裝置上執行備份、恢復等。

具有大量排序操作的SQL語句。

並行化的資料庫操作。

大池由LARGE_POOL_SIZE確定。由

alter system set large_pool_size = ?M;

五、JAVA池

用於存放java程式碼、Java語句的語法分析表、Java語句的執行反案和進行Java程式開發。由JAVA_POOL_SIZE確定,一般不小於20M。

[@more@]

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

相關文章