在Oracle8I的版本中,Oracle推出了一種全新的表空間管理方式:本地化管理的表空間。所謂本地化管理,就是指Oracle再也不利用數據字典表
來記錄Oracle表空間裏面的區的使用情況,而是在每一個表空間的數據文件的頭部加入了一個位圖區,在其中記錄每一個區的使用情況。每當一個
區被使用,或者被釋放以供從新使用時,Oracle都會更新數據文件頭部的這個記錄,反映這個變化。本地化管理的表空間的建立過程:
語法:CREATE TABLESPACE 表空間名字
DATAFILE '數據文件詳細信息'
[EXTENT MANAGEMENT { LOCAL
{AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M] ] } } ]
關鍵字EXTENT MANAGEMENT LOCAL 指定這是一個本地化管理的表空間。對於系統表空間,只能在建立數據庫的時候指定EXTENT MANGEMENT
LOCAL,由於它是數據庫建立時創建的第一個表空間。
在8i中,字典管理仍是默認的管理方式,當選擇了LOCAL關鍵字,即代表這是一個本地管理的表空間。固然還能夠繼續選擇更細的管理方式:是
AUTOALLOCATE 仍是 UNIFORM.。若爲AUTOALLOCATE,則代表讓Oracle來決定區塊的使用辦法;若選擇了UNIFORM,則還能夠詳細指定每一個區塊的
大小,若不加指定,則爲每一個區使用1M大小。
Oracle之因此推出了這種新的表空間管理方法,讓咱們來看一下這種表空間組織方法的優勢:
1. 本地化管理的表空間避免了遞歸的空間管理操做。而這種狀況在數據字典管理的表空間是常常出現的,當表空間裏的區的使用情況發生改變
時,數據字典的表的信息發生改變,從而同時也使用了在系統表空間裏的回滾段。
2. 本地化管理的表空間避免了在數據字典相應表裏面寫入空閒空間、已使用空間的信息,從而減小了數據字典表的競爭,提升了空間管理的並
發性。
3. 區的本地化管理自動跟蹤表空間裏的空閒塊,減小了手工合併自由空間的須要。
4. 表空間裏的區的大小能夠選擇由Oracle系統來決定,或者由數據庫管理員指定一個統一的大小,避免了字典表空間一直頭疼的碎片問題。
5. 從由數據字典來管理空閒塊改成由數據文件的頭部記錄來管理空閒塊,這樣避免產生回滾信息,再也不使用系統表空間裏的回滾段。由於由數
據字典來管理的話,它會把相關信息記在數據字典的表裏,從而產生回滾信息。
因爲這種表空間的以上特性,因此它支持在一個表空間裏邊進行更多的併發操做,並減小了對數據字典的依賴。