摘要:Oracle內存的管理比較復雜,但對提高Oracle的性能來說是非常重要的,也是很多數(shù)據(jù)庫管理人員需要花費大量時間去研究的問題。內存的配置是影響Oracle性能的重要問題,值得引起我們的重視。主要介紹oracle內存管理的內容。
關鍵詞:oracle;內存管理;內存分配;回收
中圖分類號:C931文獻標志碼:A文章編號:1673-291X(2010)33-0209-02
要了解內存管理,首先需要知道虛擬內存,更要知道CPU尋址。在CPU中,所有一切都是二進制表示的,32位CPU的尋址范圍是4G。但一臺機器的實際物理內存可能只有2G。這時,操作系統(tǒng)就提出了一個虛擬內存的概念,如果所尋址的數(shù)據(jù)實際上不在物理內存中,那就從虛擬內存中來獲取。這個虛擬內存可以是一個專門文件格式的磁盤分區(qū),也可以是硬盤上的某個足夠大的文件。
一、Oracle內存管理
虛擬內存尋址的一個好處就是可以使進程使用很大的虛擬內存地址,而無須考慮實際的物理內存的大小。這使得進程內存可以基于使用需要,從邏輯上分為幾個不同段。這些段可能映射到不連續(xù)的虛擬內存地址上,以使內存能夠增加。
1.Oracle的內存段類型
段在操作系統(tǒng)上是對不同內存的使用目的和存放位置不同的區(qū)分。Oracle使用以下幾種段類型:(1)程序文本。文本段包括了程序本身的可執(zhí)行的機器代碼。文本段一般標識為只讀,因此它能被多個進程共享來跑同一個程序。(2)數(shù)據(jù)堆。數(shù)據(jù)堆被用于進程在運行時,通過使用系統(tǒng)調用動態(tài)分配內存。(3)執(zhí)行堆棧。當一個函數(shù)被調用時,它的參數(shù)和返回上下文被壓入一個執(zhí)行堆棧中?!?br>