expert oracle database architecture 學習筆記
字典管理和本地管理的表空間
在oracle8.1.5之前,表空間中管理區段的分配只有一種方法:字典管理的表空間(dictionary-managed tablespace),這種情況下,需要執行遞迴sql來得到更多空間,而且對字典的更新必須是序列的,他們不可能同時進行,開銷會很大,所以要盡量避免。
在oracle的早期版本中,這種空間管理問題(遞迴sql開銷)在「臨時表空間」中最常見。空間會頻繁地分配和撤銷,這些操作必須序列執行,這就大大削弱了並發行,而增加了等待時間。
在7.3版本中,oracle引入了乙個真正的臨時表空間(true temporary tablespace)概念,它的管理完全不同,當有人需要臨時空間時,oracle會在記憶體中的資料結構裡查詢空間,而不是執行代價昂貴的遞迴sql。
在oracle8.1.5之後,引入了本地管理表空間(locally-managed tablespace)的概念,與oracle7.3中管理臨時表空間的方法一樣,本地管理表空間使用每個資料檔案中儲存的乙個點陣圖來管理區段,這樣系統只需要在表空間級序列執行乙個速度很快的置位操作,而不需要在資料庫級序列完成耗時的遞迴sql。本地管理的表空間還有另外一些很好的特性,如可以保證區段的大小統一。
確定某個表空間是字典管理或者本地管理:
sql> select tablespace_name, extent_management from dba_tablespaces;
tablespace_name extent_man
------------------------------ ----------
system local
undotbs1 local
temp local
cwmlite local
drsys local
example local
indx local
odm local
tools local
users local
xdb local
已選擇11行。
本地管理表空間和字典管理表空間
oracle的儲存分為四個層次,block extent segment和tablespace。oracle分配空間到segment時,是將一組連續的block新增到segment,這組連續的block稱作乙個extent。對於已經分配和還未分配的extent的元資料可能存放在資料字典中 字典管理表...
本地管理表空間
本地 管理 表空間的好處 1 快速,併發空間操作,表空間的分配和 都是在本地操作 2 能夠增強效能 3 本地管理的臨時表空間不產生任何undo和redo 4 空間的分配變的簡單,因為當指定 autoallocate 之句時,資料庫在分配空間時,會選擇合適的extent的大小 5 能夠減少使用者對資料...
oracle的本地管理表空間(LMT)
在oracle8i 以前,oracle使用字典管理表空間 dictionary managed tablespace 對於使用資料字典來管理表空間,每當分配或 時,oracle伺服器將更新資料字典中的相應的表,這就是表空間預設的空間管理方法。對於oracle8.0版和更早版本內這是唯一可用的方法。從...