CPU 是伺服器稀缺資源。健康狀態:尖峰期 CPU > 90%、離峰期 CPU 低。反常現象需分層診斷。
sar -u、Windows「效能監視器」。CPU used by this session / (OS User level CPU time + OS System call CPU time) > 90% → 資料庫主導 CPU。V$SYSSTAT / V$SESSTAT 找出高 CPU Session。| 殺手 | 徵兆 | 對策 |
|---|---|---|
| SQL 重解析 | Parse CPU 高、Hard Parse 多 | 使用繫結變數、調大 SESSION_CACHED_CURSORS、修正應用游標管理 |
| 低效 SQL | 單次執行 CPU 高、Buffer Gets 巨大 | EXPLAIN PLAN 分析、加索引、改寫 SQL、Hint 干預 |
| 鎖/Flash 爭用 | Latch free、Enqueue 等待高 | 縮短交易、調整 _SPIN_COUNT、優化熱塊存取 |
-- 系統級解析統計
SELECT * FROM V$SYSSTAT
WHERE NAME IN ('parse time cpu','parse time elapsed','parse count (hard)');
-- 平均解析等待 = (elapsed - cpu) / hard_parse_count → 應趨近 0
-- 找出高解析 SQL
SELECT sql_text, parse_calls, executions
FROM V$SQLAREA ORDER BY parse_calls DESC;
修復路徑:優化高解析 SQL → 或增加 SESSION_CACHED_CURSORS (Session 級游標快取)。