首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 空間管理實驗:LMT 區段分配、最小區塊、多資料檔案平均分配機制

     編輯:Oracle 資料庫相關知識

本文基於 Locally Managed Tablespace (LMT) 環境,透過四個實驗驗證區段管理核心行為。

實驗一:系統管理 vs 統一大小區段分配

  • 系統管理 (AUTOALLOCATE):
    前 1MB:區段 = 8 區塊 (64KB),共 16 個區段。
    1MB~64MB:區段 = 128 區塊 (1MB)。
    64MB 後:區段 = 1024 區塊 (8MB)。
  • 統一大小 (UNIFORM SIZE):由建表空間時指定,如 UNIFORM SIZE 40K,所有區段固定 5 區塊 (40KB)。

驗證方式:建立兩表空間、各建一表、手動 ALTER TABLE ... ALLOCATE EXTENT 擴展,查 DBA_SEGMENTS 觀察 EXTENTS、BYTES 變化。實測符合上述規則。

實驗二:一個表最小佔用空間

ASSM (Auto Segment Space Management) 下,一個區段至少 5 區塊。
CREATE TABLESPACE test2 ... UNIFORM SIZE 32K; → 報錯 ORA-03249: Uniform size ... should have atleast 5 blocks。
設 UNIFORM SIZE 40K (5 區塊) 成功,建表插入 1 列,DBA_SEGMENTS.BYTES = 40KB。結論:8KB 區塊下,最小表 = 40KB。

實驗三:多資料檔案空間平均分配

表空間含 4 個資料檔案,建表 STORAGE (INITIAL 20M)。查詢 DBA_FREE_SPACE 發現 4 個檔案各自剩餘空間減少約 5MB,證實 Oracle 在多檔案表空間中採用輪循/平均分配策略。

實驗四:檔案大小不均時的分配行為

表空間 3 檔案:9MB、19MB、9MB。
插入資料觸發擴展 3MB → 3 檔案各分 1MB。
再建表 INITIAL 5M → 兩個 9MB 檔案已滿,5MB 全從 19MB 檔案分配。
結論:優先平均分配;檔案滿後自動跳過,改從有空間的檔案分配。生產環境建議保持資料檔案大小一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved