版本演進時間軸
- 11g (2007):RAC 增強、ADR、SQL Plan Management、Result Cache、Advanced Compression
- 12c (2013):多租戶 (CDB/PDB)、In-Memory Column Store、JSON 支援、Identity Column、Data Pump 增強
- 18c/19c (2018/2019):Autonomous Database 基礎、Sharding、Hybrid Partitioned Tables、Quarantine、Real-Time Statistics
管理與診斷增強
ADR (Automatic Diagnostic Repository) - 11g+
- 統一診斷目錄:
$ADR_BASE/diag/rdbms//
- Alert Log、Trace、Incident、Health Monitor 集中管理
ADRCI 命令列工具:打包 Incident、清理舊檔、查詢告警
IPS (Incident Packaging Service)
adrci> SHOW INCIDENT
adrci> IPS CREATE PACKAGE INCIDENT 12345
adrci> IPS GENERATE PACKAGE 1 IN /tmp
自動收集相關 Trace、Dump、Alert 供 Oracle Support 分析。
熱修補 - 11g+
- 無需停機套用 Patch (OPatch online patching)
- 適用單例、RAC Rolling、Data Guard 環境
補丁分類與訂閱
- 依功能領域分類 (Security、Performance、Functional)
- My Oracle Support 訂閱特定產品/版本補丁通知
XML/JSON 原生支援
XML 支援演進
| 版本 | 特性 |
| 9i | XMLType、XMLSchema、XPath 查詢 |
| 10g | XMLIndex、XQuery 標準支援 |
| 11g | Binary XML (壓縮/解碼快)、XMLType 分區、JSR-170 (JCR) Repository |
| 12c | JSON 內建、SODA (Simple Oracle Document Access) NoSQL 介面 |
Binary XML 儲存
CREATE TABLE xml_docs (
id NUMBER PRIMARY KEY,
doc XMLType
) XMLTYPE COLUMN doc STORE AS SECUREFILE BINARY XML;
- 壓縮率 3-10x,解析速度 5-10x
- 支援 XMLIndex (結構化/非結構化/二進位)
JSON 原生支援 (12c+)
-- 建表含 JSON 欄位
CREATE TABLE orders (
id NUMBER PRIMARY KEY,
cust_id NUMBER,
order_dt DATE,
data JSON -- 19c+ 專用型別,12c 用 VARCHAR2/CLOB + CHECK (data IS JSON)
);
-- 插入
INSERT INTO orders VALUES (1, 100, SYSDATE,
'{"items":[{"sku":"A1","qty":2},{"sku":"B2","qty":1}],"total":150}');
-- 查詢 (SQL/JSON Path)
SELECT data.items[0].sku FROM orders;
SELECT JSON_VALUE(data, '$.total') FROM orders;
SELECT * FROM orders WHERE JSON_EXISTS(data, '$.items[*].sku == "A1"');
-- 索引
CREATE INDEX idx_orders_json ON orders (data) INDEXTYPE IS CTXSYS.CONTEXT;
-- 或 19c+ JSON Search Index
CREATE SEARCH INDEX idx_orders_json ON orders (data) FOR JSON;
SODA (NoSQL 風格 API)
// Java
OracleDatabase db = ...;
OracleCollection coll = db.admin().createCollection("employees");
coll.insertAndGet("{\"name\":\"John\",\"dept\":10}");
In-Memory Column Store (12.1.0.2+)
- 雙格式:Row Format (OLTP) + Column Format (分析)
- 自動維護一致性,無應用程式變更
- 壓縮編碼:Dictionary、RLE、OZIP (19c)
- Population Priority:CRITICAL/ HIGH/ MEDIUM/ LOW/ NONE
ALTER TABLE sales INMEMORY PRIORITY HIGH MEMCOMPRESS FOR QUERY HIGH;
ALTER TABLE sales INMEMORY (cust_id, prod_id) NO INMEMORY (description);
多租戶架構 (12c+)
CDB (Container Database)
├─ CDB$ROOT (Root Container)
├─ PDB$SEED (Seed Template)
└─ PDB1, PDB2, ... (Pluggable Databases)
- 資源隔離、快速佈署/遷移/升級
- PDB 可 Unplug/Plug 至不同 CDB
- 19c:PDB Lockdown Profiles、Refreshable PDB、Application Containers
其他關鍵增強
| 特性 | 版本 | 效益 |
| Virtual Columns | 11g | 不佔儲存、可建索引、約束、分區鍵 |
| Interval/Reference Partitioning | 11g | 自動建立分區、父子表分區對齊 |
| Read-Only Tables | 11g | ALTER TABLE t READ ONLY 防誤改 |
| Edition-Based Redefinition | 11gR2 | 線上應用升級、版本化物件 |
| Real-Time Statistics | 19c | DML 即時更新統計、減少收集頻率 |
| SQL Quarantine | 19c | 自動隔離惡意/失控 SQL |
| Hybrid Partitioned Tables | 19c | 部分分區在雲端/外部儲存 |