段是 Oracle 存儲分配基本單位。本文揭示兩大段管理技巧:表分區段應對大表查詢、索引組織表段優化主鍵訪問,附索引段/分區索引段/索引組織表段三類索引段對比選型指南。
零售企業銷售表年數據億級、近 10GB。全表掃描季度分析需讀取全量數據,I/O 壓力極大。
按季度/月劃分分區段,查詢特定季度僅掃描對應分區,I/O 降低 50%~90%。
CREATE TABLE sales (
...
) PARTITION BY RANGE (sale_date) (
PARTITION q1 VALUES LESS THAN (TO_DATE('2024-04-01','YYYY-MM-DD')),
PARTITION q2 VALUES LESS THAN (TO_DATE('2024-07-01','YYYY-MM-DD')),
PARTITION q3 VALUES LESS THAN (TO_DATE('2024-10-01','YYYY-MM-DD')),
PARTITION q4 VALUES LESS THAN (MAXVALUE)
);
| 維度 | 堆組織表 + 索引 | 索引組織表 (IOT) |
|---|---|---|
| 數據存儲 | 表段 + 索引段分離 | 數據存儲在 B-Tree 索引葉塊中 |
| 主鍵查詢 | 索引掃描 → TABLE ACCESS BY ROWID | 單次索引掃描直接獲取數據 |
| 適用場景 | 通用業務表 | 主鍵高頻訪問、查詢即主鍵查找 |
| 強制要求 | 無 | 必須定義主鍵 |
段管理精髓:按訪問模式劃分段、按生命周期劃分分區、按主鍵特性選擇 IOT。配合 AUTO SEGMENT SPACE MANAGEMENT、COMPRESS FOR OLTP 進一步提升空間效率。