透過 DBA_SEGMENTS、SYS_DBA_SEGS、SYS_OBJECTS 核心視圖定義,系統性梳理 Oracle 9i 所有 18 種段類型,含實際查詢驗證與儲存特徵。
| 段類型 | 來源視圖 | 典型物件 |
|---|---|---|
| TABLE | SYS_OBJECTS (TAB$) | 普通表、巢狀表主表 |
| TABLE PARTITION | SYS_OBJECTS (TABPART$) | 表分區 |
| TABLE SUBPARTITION | SYS_OBJECTS (TABSUBPART$) | 表子分區 |
| INDEX | SYS_OBJECTS (IND$) | 一般索引、IOT 主索引、CLUSTER 索引 |
| INDEX PARTITION | SYS_OBJECTS (INDPART$) | 索引分區 |
| INDEX SUBPARTITION | SYS_OBJECTS (INDSUBPART$) | 索引子分區 |
| CLUSTER | SYS_OBJECTS (CLU$) | 叢集表 |
| LOBSEGMENT | SYS_OBJECTS (LOB$) | LOB 資料段 |
| LOB PARTITION | SYS_OBJECTS (LOBFRAG$ fragtype='P') | LOB 分區 |
| LOB SUBPARTITION | SYS_OBJECTS (LOBFRAG$ fragtype<>'P') | LOB 子分區 |
| LOBINDEX | SYS_OBJECTS (IND$ type#=8) | LOB 索引 |
| NESTED TABLE | SYS_OBJECTS (TAB$ property=8192) | 巢狀表儲存段 |
| ROLLBACK | SYS_DBA_SEGS (UNDO$ type#=1) | 傳統回滾段 |
| TYPE2 UNDO | SYS_DBA_SEGS (UNDO$ type#=10) | 自動撤銷段 (9i+) |
| DEFERRED ROLLBACK | SYS_DBA_SEGS (SEG$ type#=2) | 表空間離線時的延遲回滾段 |
| TEMPORARY | SYS_DBA_SEGS (SEG$ type#=3) | 磁碟排序、臨時表、CTAS 中間段 |
| CACHE | SYS_DBA_SEGS (SEG$ type#=4) | Bootstrap 核心段 (OBJ$ 等) |
| SPACE HEADER | SYS_DBA_SEGS (SEG$ type#=9) | 區段管理標頭 |
| UNDEFINED | SYS_DBA_SEGS (其他 type#) | 未識別類型 |
SYS_IOT_OVER_*)SYS_IOT_TOP_*1.84337,完成後轉為 TABLE)DBA_SEGMENTS 中,查 V$TEMPSEG_USAGEOBJ$、USER$、TS$ 等核心字典表位置
-- 查看所有段類型分布
SELECT segment_type, COUNT(*), SUM(bytes)/1024/1024 MB
FROM dba_segments
GROUP BY segment_type
ORDER BY MB DESC;
-- 找出碎片嚴重段 (extents >= 10)
SELECT owner, segment_name, segment_type, extents
FROM dba_segments
WHERE extents >= 10
ORDER BY extents DESC;
-- 查看臨時段使用情況
SELECT * FROM v$tempseg_usage;