首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 11g 分區新特性:Interval、Reference、Virtual Column、System、List-Hash 組合分區全解析

     編輯:Oracle 資料庫基礎

業務場景

報表系統三大表近 100 GB,按公司 (Company ID) 分區。200 家 VIP 佔 30% 資料量,需優先保證 VIP 查詢效能;非 VIP 公司數萬但單表資料少。

10g 困境

  • Hash 分區:資料均勻但無法控制 VIP/非 VIP 分布,VIP 可能集中同分區導致熱點。
  • List 分區:VIP 獨立分區、非 VIP 合併少數大分區 → DDL 複雜、非 VIP 分區 10 GB+、VIP 分區僅 200 MB,維護困難。
  • 複合分區 (Range-Hash/Range-List):需新增非業務欄位區分 VIP,被否決。

11g 突破:List-Hash 組合分區

CREATE TABLE par_test
PARTITION BY LIST (owner)
SUBPARTITION BY HASH (owner)
STORE IN (example)
(
  PARTITION p1 VALUES ('SYS'),
  PARTITION p2 VALUES ('PUBLIC'),
  PARTITION def VALUES (DEFAULT) SUBPARTITIONS 4
)
AS SELECT * FROM dba_objects;
  • VIP 公司對應獨立 List 分區(p1, p2...),保證隔離效能。
  • 非 VIP 歸入 DEFAULT 分區,再以 Hash 子分區均勻分散,避免大分區熱點。
  • DDL 簡潔,維護彈性大(可 ADD PARTITION 新 VIP、COALESCE SUBPARTITION 調整非 VIP)。

其他 11g 分區新特性速覽

特性語法範例核心價值
Interval PartitionPARTITION BY RANGE (dt) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))自動建立新月份分區,免人工維護
Reference PartitionPARTITION BY REFERENCE (fk_name)子表自動跟隨父表分區,無需冗余分區鍵
Virtual Column Partitionstore NUMBER AS (buy-sell) PARTITION BY RANGE (store)虛擬欄位做分區鍵,零儲存開銷
System PartitionPARTITION BY SYSTEM (PARTITION p1, PARTITION p2)應用完全控制資料落區,INSERT INTO t PARTITION(p1)...

限制提醒

  • Reference Partition 父表不可為 Interval Partition。
  • System Partition DML 必須指定分區,否則 ORA-14701。
  • Interval Partition 不支援 MAXVALUE 分區。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved