oracle的本地管理表空間(LMT)

2021-08-25 10:52:02 字數 2105 閱讀 7953

在oracle8i 以前,oracle使用字典管理表空間(dictionary managed tablespace),對於使用資料字典來管理表空間,每當分配或**時,oracle伺服器將更新資料字典中的相應的表,這就是表空間預設的空間管理方法。對於oracle8.0版和更早版本內這是唯一可用的方法。

從oracle8i開始,oracle提供了一種新的表空間的管理方式,即本地管理表空間lmt(local managed tabalespace)。使用lmt,oracle通過在每個資料檔案內都維護乙個點陣圖以了解該資料檔案內快的空閒或使用狀態,點陣圖內的每一位對應乙個塊或一組塊在分配區或者釋放去,以供再次使用時oracle伺服器更改位圖數值以顯示塊的新狀態。

使用本地管理表空間很少形成表空間碎片,因此該空間中的物件很少與表空間有關的問題。另外需要注意的是,無論使用oracle8i資料庫還是oracle9i資料庫,都不能在建立資料庫的時候將sysem表空間建立為本地表空間管理,並且也永遠不能將system表空間轉換成本地管理表空間(lmt)。

建立本地管理表空間的一些選項:

在oracle9i資料庫中,本地管理表空間(lmt)是預設的空間管理方式。要想建立本地管理表空間(lmt),只需要在create tablespace 語句的extent management 子句中指定local子句。建立lmt時,你可以選擇使用autoallocate選項來使用oracle自動管理盤區,或者可以使用乙個指定大小(uniform size子句)的統一盤區來管理該錶空間。如果省略uniform size選項,則預設選項是autoallocate.則預設選項是autoallocate.

具體語法如下:

在create tablespace 語句的 extent management 子句的local選項指定表空間是本地管理的:

extent_management_clause :==[

extent_management }]

其中 dictionary指定使用字典表來管理表空間 這是預設方法

1.local:指定通過點陣圖來本地管理表空間([color=red]如果指定了local 則無法指定default storage_clause minimum extent或者temporary[/color])

2.autoallocate 指定表空間由系統管理,使用者無法指定區大小

3.uniform 指定通過大小為size位元組統一區來管理表空間,使用k或m以千位元組為單位來指定區大小。

4.size預設為1兆位元組

extent management 子句可用於各種create 命令中,對於非system的永久表空間可以在create tablespace 命令中指定 extent management local;對於臨時表空間可以在create temporary tablesapce 命令中指定 extent management local

何時使用oracle自動管理磁碟(autoallocate 選項)

如果表空間中的extent 的尺寸是不一定的,急需要不同的盤區大小和擁有很多盤區的大小變動的物件,這時使用autoallocate是比較合理的選擇。雖然有可能浪費了一些空間,但是由oracle來管理表空間的使用(空間分配和**的工作),簡化了使用者空間的管理。

例如:

sql> create tablespace lmttest 2 datafile 'd:\lmttest.dbf' size 5m 3 extent management local 4 autoallocate;表空間已建立。sql>

何時使用統一盤區來管理表空間(即,使用uniform size字句)?

如果想要準確控制未用的空間,並且能夠精確地預計為乙個或更多物件要分配的空間和盤區的數目、大小等,那麼使用uniform 選項更合適,因為它確保在表空間中永遠不會有一定數量的未用空間。uniform size的預設大小是1mb,此時,使用此方式建立資料檔案時,資料檔案的大小至少為1mb(位圖空間加上乙個塊)。

例如,假設表空間塊大小為4kb,統一盤區的大小為256k,那麼點陣圖中的每一位描述64個塊(256/4):

sql> create tablespace lmttest 2 datafile 'd:\lmttest.dbf' size 10m 3 extent management local 4 uniform size 256k;表空間已建立。sql>

本地管理表空間

本地 管理 表空間的好處 1 快速,併發空間操作,表空間的分配和 都是在本地操作 2 能夠增強效能 3 本地管理的臨時表空間不產生任何undo和redo 4 空間的分配變的簡單,因為當指定 autoallocate 之句時,資料庫在分配空間時,會選擇合適的extent的大小 5 能夠減少使用者對資料...

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

oracle的儲存分為四個層次,block extent segment和tablespace。oracle分配空間到segment時,是將一組連續的block新增到segment,這組連續的block稱作乙個extent。對於已經分配和還未分配的extent的元資料可能存放在資料字典中 字典管理表...

oracle表空間的空間管理

表空間 tablespace 為資料庫提供使用空間的邏輯結構,其對應物理結構是資料檔案,乙個表空間可以包含多個資料檔案.本地管理表空間 locally managed tablespace簡稱lmt 8i以後出現的一種新的表空間的管理模式,通過本地位圖來管理表空間的空間使用。字典管理表空間 dict...