oracle內存分配與調整解析課件_第1頁
oracle內存分配與調整解析課件_第2頁
oracle內存分配與調整解析課件_第3頁
oracle內存分配與調整解析課件_第4頁
oracle內存分配與調整解析課件_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Oracle內存分配與參數設置基本初始化參數介紹內存分配與初始化參數的設置第1頁,共19頁。基本初始化參數的功能sga_max_size(SGA) : 說明 : 指定例程存活期間所占用的系統全局區的最大大小。 值范圍 : 0 到各操作系統所允許的最大值。請注意, 由于該參數值的最小值在啟動時已經調整完畢, 因而它無關緊要。 默認值 : 如果未指定值, sga_max_size 的默認值將與啟動時 SGA 的最初大小 (比如說 X) 相同。該大小取決于 SGA 中各種池的大小, 如緩沖區高速緩存, 共享池, 大型池等。如果指定的值小于 X, 則所使用的 sga_max_size 的值將為 X。也

2、就是說, 它是 X 與用戶指定的 sga_max_size 值兩者之間的較大值。 第2頁,共19頁。pga_aggregate_target (PGA ): 說明 : 指定連接到例程的所有服務器進程的目標 PGA 總內存。請在啟用自動設置工作區之前將此參數設置為一個正數。這部分內存不駐留在 SGA 中。數據庫將此參數值用作它所使用的目標 PGA 內存量。設置此參數時, 要將 SGA 從可用于 Oracle 例程的系統內存總量中減去。然后可將剩余內存量分配給 pga_aggregate_target。 值范圍 : 整數加字母 K, M 或 G, 以將此限值指定為千字節, 兆字節或千兆字節。最小值

3、為 10M, 最大值為 4000G 默認值 : 未指定, 表示完全禁用對工作區的自動優化。 第3頁,共19頁。processes : 說明 : 指定可同時連接到一個 Oracle Server 上的操作系統用戶進程的最大數量。該值應允許執行所有后臺進程, 如 :作業隊列 (SNP) 進程和并行執行 (Pnnn) 進程。 值范圍 : 6 到根據操作系統而定的一個值。 默認值 : 由 PARALLEL_MAX_SERVERS 確定 第4頁,共19頁。sessions : 說明 : 指定用戶會話和系統會話的總量。默認數量大于 PROCESSES, 以允許遞歸會話。 值范圍 : 任何整數值。 默認值

4、: 派生 (1.1 * PROCESSES + 5) 第5頁,共19頁。內存分配與初始化參數的設置 SGA內參數設置Log_bufferLarge_pool_sizeJava_pool_sizeshared_pool_sizeData buffer第6頁,共19頁。Log_buffer對于日志緩沖區的大小設置,通常我覺得沒有過多的建議,因為參考LGWR寫的觸發條件之后,我們會發現通常超過3M意義不是很大。作為一個正式系統,可能考慮先設置這部分為log_buffer=13M 大小,然后針對具體情況再調整。第7頁,共19頁。Large_pool_size對于大緩沖池的設置,假如不使用MTS,建議在

5、2030M 足夠了。這部分主要用來保存并行查詢時候的一些信息,還有就是RMAN 在備份的時候可能會使用到。如果設置了MTS,則由于UGA部分要移入這里,則需要具體根據server process數量和相關會話內存參數的設置來綜合考慮這部分大小的設置。第8頁,共19頁。Java_pool_size假如數據庫沒有使用JAVA,我們通常認為保留1020M大小足夠。事實上可以更少,甚至最少只需要32k,但具體跟安裝數據庫的時候的組件相關(比如http server)。第9頁,共19頁。shared_pool_size這是迄今為止最具有爭議的一部分內存設置。按照很多文檔的描述,這部分內容應該幾乎和數據緩

6、沖區差不多大小。但實際上情況卻不是這樣的。首先我們要考究一個問題,那就是這部分內存的作用,它是為了緩存已經被解析過的SQL,而使其能被重用,不再解析。這樣做的原因是因為,對于一個新的SQL(shared_pool 里面不存在已經解析的可用的相同的SQL),數據庫將執行硬解析,這是一個很消耗資源的過程。而若已經存在,則進行的僅僅是軟分析(在共享池中尋找相同SQL),這樣消耗的資源大大減少。所以我們期望能多共享一些SQL,并且如果該參數設置不夠大,經常會出現ora-04031錯誤,表示為了解析新的SQL,沒有可用的足夠大的連續空閑空間,這樣自然我們期望該參數能大一些。但是該參數的增大,卻也有負面的

7、影響,因為需要維護共享的結構,內存的增大也會使得SQL 的老化的代價更高,帶來大量的管理的開銷,所有這些可能會導致CPU 的嚴重問題。在一個充分使用綁定變量的比較大的系統shared_pool_size 的開銷通常應該維持在300M 以內。除非系統使用了大量的存儲過程、函數、包,比如oracle erp 這樣的應用,可能會達到500M甚至更高。于是我們假定一個1G內存的系統,可能考慮設置該參數為100M,2G 的系統考慮設置為150M,8G 的系統可以考慮設置為200300M。第10頁,共19頁。Data buffer現在我們來談數據緩沖區,在確定了SGA 的大小并分配完了前面部分的內存后,其

8、余的,都分配給這部分內存。通常,在允許的情況下,我們都嘗試使得這部分內存更大。這部分內存的作用主要是緩存 DB BLOCK,減少甚至避免從磁盤上獲取數據,在8i中通常是由db_block_buffers*db_block_size 來決定大小的。如果我們設置了buffer_pool_keep 和buffer_pool_recycle,則應該加上后面這兩部分內存的大小。第11頁,共19頁。實際操作中可以根據ORACLE提供的圖形界面來設置前面介紹的那些參數(如下圖)oracle內存分配可以參考下面的公式:OS使用內存+SGA+并發執行進程數*(sort_area_size+hash_ara_si

9、ze+2M) select value from v$sysstat where name =physical reads;VALUE-14764SQL select value from v$sysstat where name =physical reads direct;VALUE-50SQL select value from v$sysstat where name =physical reads direct (lob);VALUE-0SQL select value from v$sysstat where name =consistent gets;VALUE-167763SQL select value from v$sysstat where name = db block gets;VALUE-14305這里命中率的計算應該是令 x = physical reads direct + physical reads direct (lob)命中率 =100 - ( physical reads - x) / (consistent gets + db block gets - x)*100通常如果發現命中率低于90%,則應該調整應用可可以考慮是否增大數據緩沖區第16頁,共19頁。SGA中的其他兩項可以適當給點

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論