Oracle 憑藉高可靠性、安全性、相容性贏得企業青睞。維持永久優良性能,需從架構設計、物理存儲、維護策略三個維度系統佈局。本文聚焦五大核心支柱,提供可落地的最佳實踐。
經驗顯示:大資料庫空間 80%+ 集中於少數大表。分區將表記錄動態分離至不同表空間,物理拆分賦予維護、備份、恢復、事務、查詢多維優勢。邏輯層面可建立聯合視圖保持整體訪問透明。
CREATE TABLE employee (
empno VARCHAR2(10) PRIMARY KEY,
name VARCHAR2(30),
deptno NUMBER(2)
)
PARTITION BY RANGE (deptno) (
PARTITION part1 VALUES LESS THAN (11) TABLESPACE part1_ts,
PARTITION part2 VALUES LESS THAN (21) TABLESPACE part2_ts,
PARTITION part3 VALUES LESS THAN (31) TABLESPACE part3_ts,
PARTITION part4 VALUES LESS THAN (MAXVALUE) TABLESPACE part4_ts
);
CREATE INDEX employee_deptno ON employee(deptno)
LOCAL (
PARTITION part1 TABLESPACE part1_ndx_ts,
PARTITION part2 TABLESPACE part2_ndx_ts,
PARTITION part3 TABLESPACE part3_ndx_ts,
PARTITION part4 TABLESPACE part4_ndx_ts
);
本地索引與表分區一一對應,維護簡單、分區剪枝高效、支援分區級重建。
CREATE INDEX employee_deptno ON employee(deptno)
GLOBAL PARTITION BY RANGE (deptno) (
PARTITION part1 VALUES LESS THAN (11) TABLESPACE part1_ndx_ts,
PARTITION part2 VALUES LESS THAN (21) TABLESPACE part2_ndx_ts,
PARTITION part3 VALUES LESS THAN (31) TABLESPACE part3_ndx_ts,
PARTITION part4 VALUES LESS THAN (MAXVALUE) TABLESPACE part4_ndx_ts
);
適用於跨分區唯一性約束,但維護複雜度高,非必要不建議。
ALTER TABLE 支援:ADD、DROP、EXCHANGE、MOVE、MODIFY、RENAME、SPLIT、TRUNCATE 分區,滿足全生命週期管理需求。
頻繁 DELETE/INSERT 導致索引結構稀疏,已刪除條目空間無法自動回收,造成:
重建策略:
ALTER INDEX idx REBUILD ONLINE;(企業版),業務零中斷;ALTER INDEX idx REBUILD;;ANALYZE INDEX ... VALIDATE STRUCTURE 檢視 HEIGHT、LF_BLKS、DEL_LF_ROWS,碎片率超 20% 觸發重建。DBMS_STATS.GATHER_SCHEMA_STATS 定期全庫收集;ESTIMATE_PERCENT => DBMS_STATS.AUTO_SAMPLE_SIZE、METHOD_OPT => 'FOR ALL COLUMNS SIZE AUTO';INCREMENTAL => TRUE(分區表);LOCK_TABLE_STATS,防止波動。V$SQL);DBMS_XPLAN.DISPLAY_CURSOR);分區解決「大」,索引重建解決「碎」,統計收集解決「盲」,SQL 優化解決「慢」,資源管理解決「爭」。五大支柱相輔相成,構成 Oracle 性能永續進化的鋼鐵骨架。建議納入月度巡檢體系,數據驅動持續優化。