Oracle 實例行為由數百參數控制,其中 26 個參數對優化器決策與系統吞吐量影響最為直接。本文逐一解析其功能、適用場景與調整指引。
| # | 參數 | 核心功能 | 調整指引 |
|---|---|---|---|
| 1 | CHECKPOINT_PROCESS | 啟用檢查點進程 (CKPT) | LGWR 壓力大時設 TRUE,分攤檢查點工作 |
| 2 | DB_BLOCK_CHECKPOINT_BATCH | 單次檢查點處理塊數上限 | 適度調大加速檢查點完成 |
| 3 | DB_BLOCK_BUFFERS | SGA 緩衝區塊數 (舊版) | 決定 SGA 大小核心參數;調大減 I/O 但佔記憶體,新版用 DB_CACHE_SIZE |
| 4 | DB_BLOCK_SIZE | 資料庫塊大小 (位元組) | 建庫時固定 (2K/4K/8K/16K/32K);影響 FREELISTS 上限 |
| 5 | DB_FILES | 最大可開啟資料檔數 | 預留擴充空間;避免達上限無法加檔 |
| 6 | DB_FILE_MULTIBLOCK_READ_COUNT | 全掃單次 I/O 讀取塊數 | 4~32 視 OS 而定;調大加速全掃但增 PGA 壓力 |
| 7 | DISCRETE_TRANSACTIONS_ENABLED | 簡化回滾機制 | 特定交易類型設 TRUE 可提升效能 |
| 8 | LOG_ARCHIVE_BUFFER_SIZE | 歸檔緩衝區大小 | 僅直寫磁帶裝置需調整;配合 LOG_ARCHIVE_BUFFERS |
| 9 | LOG_ARCHIVE_BUFFERS | 歸檔緩衝區個數 | 同上 |
| 10 | LOG_BUFFER | Redo Log Buffer 位元組數 | 繁忙系統避免 ≥64K;預設約 4×DB_BLOCK_SIZE |
| 11 | LOG_CHECKPOINT_TIMEOUT | 時間基礎檢查點間隔(秒) | 0 表關閉;配合 FAST_START_MTTR_TARGET 使用 |
| 12 | LOG_CHECKPOINT_INTERVAL | Redo 塊數基礎檢查點間隔 | 決定檢查點頻率;影響恢復時間 |
| 13 | LOG_FILES | 最大開啟日誌檔數 | SGA 壓力大可適度減小 |
| 14 | LOG_SIMULTANEOUS_COPIES | Redo Copy Latch 最大數 | 建議 2×CPU 核心數;單 CPU 設 0 關閉 |
| 15 | LOG_SMALL_ENTRY_MAX_SIZE | 小 Redo 項閾值 | 配合 LOG_SIMULTANEOUS_COPIES;超過此值釋放 Latch |
| 16 | OPTIMIZER_MODE | 優化器模式:RULE/COST/CHOOSE | 現代系統統一用 COST (ALL_ROWS/FIRST_ROWS) |
| 17 | SEQUENCE_CACHE_ENTRIES | SGA 中 Sequence 快取數 | 高並發調大提升效能;LRU 管理 |
| 18 | SEQUENCE_CACHE_HASH_BUCKETS | Sequence 雜湊桶數 | 質數;加速快取查找 |
| 19 | SERIALIZABLE | 可序列化隔離等級 | TRUE 保證表級讀一致;會增加鎖爭用 |
| 20 | SHARED_POOL_SIZE | 共享池大小 | 多用戶系統調大改善解析效能;小系統可調小省記憶體 |
| 21 | SMALL_TABLE_THRESHOLD | 小表全掃快取門檻 | 表塊數 < 此值則全表快取;通常用預設值 |
| 22 | SORT_AREA_RETAINED_SIZE | 排序保留記憶體 | 排序結束釋放至此值;複雜查詢可調大 |
| 23 | SORT_AREA_SIZE | 單次排序最大 PGA 記憶體 | 大排序量調大;一般不動,除非 TEMP 表空間壓力大 |
| 24 | SORT_SPACE_MAP_SIZE | 排序磁碟空間管理 | 極大排序時微調 |
| 25 | SQL_TRACE | 啟用 SQL 追蹤 | 僅診斷時設 TRUE;生產環境用 ALTER SESSION 臨時開啟 |
| 26 | TRANSACTIONS | 最大並發交易數 | 大值需配大 SGA 與更多回滾段;預設 > PROCESSES 支援遞歸交易 |
PGA_AGGREGATE_TARGET 取代 SORT_AREA_SIZE),優先使用自動管理。