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

Oracle 11g/12c/19c 新特性深度解析:管理增強、XML/JSON 原生支援、In-Memory 與多租戶架構

     編輯:Oracle 資料庫基礎

版本演進時間軸

  • 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 支援演進

版本特性
9iXMLType、XMLSchema、XPath 查詢
10gXMLIndex、XQuery 標準支援
11gBinary XML (壓縮/解碼快)、XMLType 分區、JSR-170 (JCR) Repository
12cJSON 內建、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 Columns11g不佔儲存、可建索引、約束、分區鍵
Interval/Reference Partitioning11g自動建立分區、父子表分區對齊
Read-Only Tables11gALTER TABLE t READ ONLY 防誤改
Edition-Based Redefinition11gR2線上應用升級、版本化物件
Real-Time Statistics19cDML 即時更新統計、減少收集頻率
SQL Quarantine19c自動隔離惡意/失控 SQL
Hybrid Partitioned Tables19c部分分區在雲端/外部儲存
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved