程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> SGA和後台進程------oracle體系結構

SGA和後台進程------oracle體系結構

編輯:Oracle數據庫基礎
Oracle有一個很大的內存塊,稱為系統全局區(SGA),在這裡它會做以下工作:

q  維護所有進程需要訪問的多種內部數據結構;

q  緩存磁盤上的數據,另外重做數據寫至磁盤之前先在這裡緩存;

q  保存已解析的SQL計劃;

q  等等。


Oracle有一組“附加到”SGA的進程,附加機制因操作系統而異。在UNIX環境中,這些進程會物理地附加到一個很大的共享內存段,這是操作系統中分配的一個內存塊,可以由多個進程並發地訪問(通常要使用shmget()和shmat())。
在Windows中,這些進程只是使用C調用(malloc())來分配內存,因為它們實際上是一個大進程中的線程,所以會共享相同的虛擬內存空間。Oracle還有一組供數據庫進程/線程讀寫的文件(只允許Oracle進程讀寫這些文件)。這些文件保存了所有的表數據、索引、臨時空間、重做日志等。
如果在一個UNIX系統上啟動Oracle,並執行ps命令,會看到運行著許多物理進程,還會顯示出這些進程的名字。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved