記憶體優化是資料庫調優的重中之重。Oracle 記憶體架構包含:專用 SQL/PLSQL 區、共享池、Redo Log Buffer、Buffer Cache。優化順序:應用/SQL 優化 → 記憶體結構優化 → I/O 優化。
SGA 在實例啟動時分配,關閉時釋放。若 SGA 頻繁換入換出虛擬記憶體,將嚴重拖慢效能。解決方案:在 init.ora 設定 PRE_PAGE_SGA = TRUE,啟動時預先分頁鎖定 SGA 至實體記憶體。
SHOW SGA(實例需啟動)。SELECT * FROM V$SGA;(需在 SVRMGR 提示符下)。核心指標:追蹤輸出中 PARSE COUNT 與 EXECUTE COUNT 接近 → 解析過多。
各開發工具控制手段:
| 工具 | 控制參數/呼叫 |
|---|---|
| Pro*C | HOLD_CURSOR、RELEASE_CURSOR、MAX_OPEN_CURSORS |
| OCI | OOPEN/OPARSE 分配、OCLOSE 釋放 |
| SQL*Forms | Trigger/Form/Runtime 層級控制重用 |
PRE_PAGE_SGA=TRUE 已生效。V$SYSSTAT 中 parse count (hard) / execute count 比率。