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

Oracle 應用資料庫系統設計與開發全攻略:硬體選型、邏輯物理設計、應用開發最佳實踐

     編輯:Oracle 資料庫基礎

一、硬體選型與資料庫系統的關鍵關係

1. CPU

  • 並行查詢選項支援多 CPU 協同執行 SQL。
  • 前置動作:SQL 優化優於加 CPU;劣質 SQL 會白白消耗 CPU。
  • 了解 OS 對 CPU 數量限制與擴展性。
  • 工作調度:將高 CPU 消耗批次作業安排在閒時,減少尖峰爭用。

2. 記憶體

  • UNIX:物理記憶體 <1GB → Swap 4x;>1GB → Swap 2x。Swap 放最快磁碟。
  • SGA 設為可用記憶體 55%-57%,過大反而增加頁面交換降低效能。
  • 9i+ 支援動態調整 SGA 組件大小無需重啟。
  • 定期監控記憶體使用,依應用熱度調整 Buffer Cache/Shared Pool/Large Pool 比例。

3. 儲存設備

  • 磁碟 I/O 是首要瓶頸。
  • 熱插拔磁碟:故障更換無需停機。
  • 中小容量磁碟 (1-4TB 現代對應 1-4GB 時代):大量中小磁碟提供更靈活 RAID 組合。
  • RAID 選型:
    • RAID 0+1 (RAID 10):OLTP 最佳,讀寫平衡、重建快。
    • RAID 5:讀優寫劣、重建久,僅適合 DSS/數據倉庫。
  • Stripe Size (條帶大小) 決策三因素:應用類型 (OLTP 32K/64K、DSS 64K-256K)、OS/DB Block Size 整數倍、磁碟控制器數量。垂直/水平條帶視控制器拓撲決定。

二、Oracle 資料庫應用設計:邏輯與物理

邏輯設計 (ER → 正規化關聯模型)

  • 輔助工具:Oracle Designer / SQL Developer Data Modeler 實現 ER 到 DDL 映射。
  • 核心輸出:標準化關聯模型 (資料完整、應用無關、儲存優化)。

物理設計 (儲存分配) — 設計前必答 8 大問題

  1. 需建立哪些用戶?系統權限、表空間配額、Resource Profile?
  2. 資料分幾個表?各表歸屬用戶?操作權限矩陣?
  3. 各表結構、PK、約束?
  4. 關鍵表 vs 交易表 識別?
  5. 主表 vs 從表、FK 約束、驅動表選擇?
  6. 哪些表/欄建立索引?
  7. 表空間、Undo 規劃、磁碟分配?建議 LMT 本地管理。
  8. 觸發器/程序規劃、備份恢復策略?

建立物件核心原則

三、應用系統設計與開發

1. 應用設計五步驟

  1. 分析功能 → 確定類型 (OLTP/DSS/批次)。
  2. 明確使用時間、用戶、訪問資料、組件、響應時間要求。
  3. 確定架構:Two-tier (Client/Server) vs Multi-tier (Browser/Server/微服務)、應用伺服器選型。
  4. 功能劃分模組,明確流量、高峰、資料庫對象、互操作特性、排程。
  5. 模組化設計,選擇 DB 組件、開發語言、工具。

2. 開發階段 9 大關鍵實踐

  1. 會話關鍵型應用:優先 Pro*C/C++ 或 OCI;OCI 直達核心、支援 TAF (Transparent Application Failover)。
  2. 失敗檢查與恢復:指定備用 DB/Instance、終止錯誤 Client 進程。
  3. 可維護性:View 封裝、%TYPE/%ROWTYPE 相對定義、Table-Driven 設計模式。
  4. 充分單元/模組測試:為整合奠基。
  5. 關鍵表操作:操作前備份表,成功後刪除備份。
  6. 代碼優化:高比例效能問題源自拙劣代碼,優化為常態。
  7. 空間成長監控:定期檢查表空間/段增長,預警擴容。
  8. 定時資料整理:Partition Truncate / DBMS_SCHEDULER / Cron + Shell + Pro*C 批次刪除。Shell 必須設定 ORACLE_BASE/HOME/NLS_LANG/LD_LIBRARY_PATH/PATH。
  9. 大量刪除優化:
    • 分區表 → TRUNCATE PARTITION (秒級、不產生碎片、需重建全局索引 8i/9i,10g+ 自動維護)。
    • 非分區大量 DELETE → 專用大 Undo 表空間 (平常 OFFLINE,作業時 ONLINE + 指定 SET TRANSACTION USE ROLLBACK SEGMENT)。

結語

「硬體為基、設計為魂、開發為形、運維為命」。從 CPU/記憶體/儲存選型,到邏輯/物理設計八大問題、十大建立原則,再到應用設計五步驟、開發九大實踐,構建高效能、高可用、可維護的 Oracle 應用系統完整知識體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
原則實作要點
應用資料隔離專用表空間,禁止用 SYSTEM;用戶 SYSTEM 表空間配額設 0
索引表分離索引與表放不同磁碟的不同表空間
高併發表分離同時被訪問的表分散不同磁碟
磁碟有限時低關聯表可共用磁碟
預分配INITIAL 足夠大 (接近最大容量)、NEXT 靈活、PCTINCREASE=0 減少碎片、PCTFREE 依更新頻率調整、INITRANS=FREELISTS=併發交易數
分區表大表分區存放不同磁碟,支援分區剪枝、Truncate Partition、移動分區、彈性備份
相似增長表同 TS控制碎片、提高空閒塊重用
同備份策略表同 TS簡化備份管理
關鍵應用對象放快磁碟SSD/NVMe 放核心交易表/索引/Undo/Redo