SGA和後臺程序 oracle體系結構

2022-06-23 21:04:04 字數 556 閱讀 1435

oracle有一個很大的記憶體塊,稱為系統全域性區(sga),在這裡它會做以下工作:q  維護所有程序需要訪問的多種內部資料結構;

q  快取磁碟上的資料,另外重做資料寫至磁碟之前先在這裡快取;

q  儲存已解析的sql計劃;

q  等等。

oracle有一組“附加到”sga的程序,附加機制因作業系統而異。在unix環境中,這些程序會物理地附加到一個很大的共享記憶體段,這是作業系統中分配的一個記憶體塊,可以由多個程序併發地訪問(通常要使用shmget()和shmat())。

在windows中,這些程序只是使用c呼叫(malloc())來分配記憶體,因為它們實際上是一個大程序中的執行緒,所以會共享相同的虛擬記憶體空間。oracle還有一組供資料庫程序/執行緒讀寫的檔案(只允許oracle程序讀寫這些檔案)。這些檔案儲存了所有的表資料、索引、臨時空間、重做日誌等。

如果在一個unix系統上啟動oracle,並執行ps命令,會看到執行著許多物理程序,還會顯示出這些程序的名字。