三大應用類型核心特徵對比
| 維度 | OLTP (線上交易處理) | DSS (決策支援系統) | 混合/多用途 |
| 典型例子 | 訂票、訂單、銀行交易、庫存扣減 | 銷售分析、客戶行為探勘、財務報表、BI 儀表板 | ERP、電商後台 (前台 OLTP + 後台報表) |
| 操作模式 | 高併發、短交易、大量 INSERT/UPDATE | 低併發、長查詢、大量掃描/聚合、主要 SELECT | 兼具上述特徵 |
| 關鍵目標 | 吞吐量、回應時間、併發一致性 | 查詢效能、資料完整性、歷史趨勢分析 | 平衡交易與分析負載 |
| 資料特徵 | 當前營運資料、高度正規化 | 歷史大量資料、反正規化/星狀結構 | 營運+歷史資料共存 |
OLTP 設計關鍵因素
- 回滾段/Undo 表空間:支援高併發短交易
- 索引策略:避免過度索引 (拖慢 DML);關鍵外鍵、高選擇率欄位建立 B-tree 索引
- 叢集/雜湊叢集:針對固定連接模式 (如訂單-明細) 考慮
- 獨立交易:
AUTONOMOUS_TRANSACTION 處理日誌/稽核
- 資料區塊大小:8K/16K 平衡讀取與緩衝區利用
- 緩衝區快取大小:熱點資料駐留
- 動態空間分配:避免擴展等待
- 共用池:SQL 重用、繫結變數
- 分區表:大量歷史資料歸檔、清除
- 優化 SQL + 繫結變數:硬解析最小化
- 完整性約束:資料品質前置
- C/S 架構/連線池:中間層連線管理
- 可動態調整參數:無需重啟微調
DSS 設計關鍵因素
- 實體化視圖:預計算彙總、加速報表
- 位圖索引:低基數欄位 (性別、地區、狀態) 星狀查詢加速
- B-tree 索引:高基數維度鍵
- 叢集/雜湊:維度表連接優化
- 大區塊大小:16K/32K 減少大掃描 I/O 次數
- 星狀查詢優化:
STAR_TRANSFORMATION_ENABLED=TRUE
- 查詢提示:
/*+ PARALLEL */、/*+ USE_HASH */ 等
- PL/SQL 封裝複雜邏輯:減少網路往返
- 分區表:時間範圍分區實現 Partition Pruning
混合架構解決方案:資料分離與同步
核心衝突:OLTP 需要高度正規化、大量 DML、小區塊;DSS 需要反正規化、大掃描、大區塊。最佳實務:物理分離
- OLTP 來源庫:正規化結構、優化寫入、最小索引
- DSS 目標庫 (Data Warehouse/Mart):星狀/雪花結構、大量索引、分區、MV
- ETL/CDC 同步機制:
- 每日批次抽取 (接受 T+1 延遲,效能最佳)
- 即時 CDC (GoldenGate, XStream, Streams) 近實時同步
- 觸發器/佇列自製 (不推薦生產環境)
決策樹:如何為專案選型
- 系統主要負載是「寫入/更新」還是「查詢/分析」? → OLTP / DSS
- 是否需即時查詢最新交易資料? → 混合或 CDC 同步
- 資料量增長速度與保留年限? → 決定分區/歸檔策略
- 團隊技能組合 (DBA/開發/BI)? → 影響工具選型 (APEX/ORDS/BI 工具)
現代雲原生補充
- Oracle Autonomous Transaction Processing (ATP) → OLTP 最佳化
- Oracle Autonomous Data Warehouse (ADW) → DSS 最佳化
- 兩者可透過 Database Link、GoldenGate、Data Pump 雲端同步