字典管理和本地管理的表空間

2022-02-17 15:30:12 字數 1347 閱讀 9541

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版和更早版本內這是唯一可用的方法。從...