oracle表空間的空間管理

2022-03-07 09:17:42 字數 1897 閱讀 5280

表空間(tablespace)——為資料庫提供使用空間的邏輯結構,其對應物理結構是資料檔案,乙個表空間可以包含多個資料檔案.

本地管理表空間(locally managed tablespace簡稱lmt)——8i以後出現的一種新的表空間的管理模式,通過本地位圖來管理表空間的空間使用。

字典管理表空間(dictionary-managed tablespace簡稱dmt)——8i以前包括以後都還可以使用的一種表空間管理模式,通過資料字典管理表空間的空間使用。

段(segment)——資料庫一種邏輯結構,如表段,索引段,回滾段等,段存在於表空間中,並對應一定的儲存空間。

區間,可以簡稱區(extent)——段的儲存可以分成乙個或多個區間,每個區間占用一定數量的資料塊(block),在本地管理的表空間中,表空間的extent就對應段的extent。

塊(block)——資料庫最小的儲存單位,在本文中block的大小約定為8192位元組。

位(bit)——本地管理表空間的空間管理單位,乙個位可能等於乙個區間,也可能多個位組成乙個區間。

本地管理表空間的由來

在oracle8i的版本中,oracle推出了一種全新的表空間管理方式:本地化管理的表空間。所謂本地化管理,就是指oracle不再利用資料字典表來記錄oracle表空間裡面的區的使用狀況,而是在每個表空間的資料檔案的頭部加入了乙個點陣圖區,在其中記錄每個區的使用狀況。每當乙個區被使用,或者被釋放以供重新使用時,oracle都會更新資料檔案頭部的這個記錄,反映這個變化。

本地化管理的表空間的建立過程:(在oracle 10g以後預設都是採用本地管理表空間)

語法:create tablespace 表空間名字

datafile '資料檔案詳細資訊'

[extent management } ]

關鍵字extent management local 指定這是乙個本地化管理的表空間。對於系統表空間,只能在建立資料庫的時候指定extent mangement local,因為它是資料庫建立時建立的第乙個表空間。

優點:1. 本地化管理的表空間避免了遞迴的空間管理操作。而這種情況在資料字典管理的表空間是經常出現的,當表空間裡的區的使用狀況發生改變時,資料字典的表的資訊發生改變,從而同時也使用了在系統表空間裡的回滾段。

2. 本地化管理的表空間避免了在資料字典相應表裡面寫入空閒空間、已使用空間的資訊,從而減少了資料字典表的競爭,提高了空間管理的併發性

3. 區的本地化管理自動跟蹤表空間裡的空閒塊,減少了手工合併自由空間的需要。

4. 表空間裡的區的大小可以選擇由oracle系統來決定,或者由資料庫管理員指定乙個統一的大小,避免了字典表空間一直頭疼的碎片問題。

5. 從由資料字典來管理空閒塊改為由資料檔案的頭部記錄來管理空閒塊,這樣避免產生回滾資訊,不再使用系統表空間裡的回滾段。因為由資料字典來管理的話,它會把相關資訊記在資料字典的表裡,從而產生回滾資訊。

由於這種表空間的以上特性,所以它支援在乙個表空間裡邊進行更多的併發操作,並減少了對資料字典的依賴。

oracle中將字典管理表空間轉換為本地管理表空間

字典管理表空間每當表或其他物件需要擴大的時候都檢查其資料字典以確保有可用的空間分配給物件,然後給物件分配乙個新區段並更新其可用空間資訊。

本地管理表空間儲存資料檔案本身的空間管理資訊,而且表空間自動跟蹤每個資料檔案塊的可用或已用狀態。

在事務比較多的資料庫中顯然字典管理每次插入資料時都會檢查資料字典,這就使得資料庫效能有所損耗。

轉換:第一種方法——命令方式轉移。

首先你要新建乙個oracle表空間,在oracle 10g以後預設都是採用本地管理表空間的。

對於表空間的轉移使用命令

alter table temp move tablespace new_temp;

對於索引你需要重建

alter table index rebuild tablespace new_index;

Oracle 表空間管理

一 建立表空間f create tablespace mytablespace datafile 建立乙個名為mytablesapce的表空間 path filename1.dbf size 2048m autoextend off,指明資料檔案在存放地點,並關閉檔案的自動擴充套件功能,如果開啟了這...

oracle 表空間管理

表空間是資料庫的邏輯組成部分,從物理上講資料庫資料存放在資料檔案中 從邏輯上講,資料庫則是存放在表空間中,表空間是由乙個或者多個資料檔案組成。oracle資料庫邏輯結構組成部分 資料庫是由表空間組成,而表空間又是由段構成,段是由區構成,而區是又oracle資料庫的塊組成這樣的一種結構,這樣可以提高資...

ORACLE 表空間管理

1.create tablespaces sql create tablespace tablespace name datafile c oracle oradata file1.dbf size 100m,sql c oracle oradata file2.dbf size 100m mini...