SQL> EXECUTE STATSPACK.SNAP;
PL/SQL procedure successfully completed.
此呼叫將當前系統效能指標 (SGA、等待事件、SQL 統計、段統計等) 寫入 `STATS$SNAPSHOT` 等表,產生一個 `SNAP_ID` (遞增整數)。
建議間隔 **15-60 分鐘** (視負載強度),涵蓋典型業務高峰期。期間可執行多次 `SNAP` 產生多個時間點。
SQL> EXECUTE STATSPACK.SNAP;
PL/SQL procedure successfully completed.
SQL> @?/rdbms/admin/spreport.sql
-- 或指定路徑:SQL> @$ORACLE_HOME/rdbms/admin/spreport
互動式提示:
產出的 `.lst` 文字報告極長,重點關注以下黃金區塊:
| 報告區塊 | 關鍵指標 | 健康基準 (參考) | 異常時排查方向 |
|---|---|---|---|
| Load Profile | Redo size/s, Logical reads/s, Physical reads/s, User calls/s, Parses/s, Hard parses/s, Sorts/s | Hard parses/s < 10% of Parses/s; Redo size 穩定 | Hard parse 高 → 共用游標問題 (未使用綁定變數);Physical read 高 → Buffer Cache 太小或全表掃描 |
| Instance Efficiency Percentages | Buffer Nowait %, Redo NoWait %, Buffer Hit %, Library Hit %, Soft Parse %, Execute to Parse % | Buffer Hit % > 99%; Library Hit % > 99%; Execute to Parse % > 90% | Hit ratio 低 → 記憶體不足 / SQL 不共享;Execute to Parse 低 → 大量硬解析 |
| Top 5 Timed Events | Event, Waits, Time(s), Avg Wait(ms), % DB Time | DB Time 佔比前 3 事件合理 (db file scattered read, log file sync 等) | 核心入口:點擊事件名進入 Wait Event 詳細段落。關注 `log file sync` (Commit 過多/Redo Log 慢)、`db file sequential/scattered read` (I/O 瓶頸/索引失效)、`latch free` / `enq:` (爭用) |
| SQL Ordered by Elapsed Time / Gets / Reads / Executions | Hash Value, Module, SQL Text (前 50 字), Elapsed Time, Executions, Buffer Gets, Disk Reads, Rows Processed | 單次執行 Elapsed Time 低、Buffer Gets/Execution 合理 | SQL 調優首選清單:複製 Hash Value → `SELECT * FROM STATS$SQL_SUMMARY WHERE HASH_VALUE = ...` 取得完整 SQL 文本 → `EXPLAIN PLAN` / `DBMS_XPLAN` 分析執行計畫 |
| Instance Activity Stats | Statistic, Total, per Second, per Transaction | 關注 `table scans (long tables)`, `sorts (disk)`, `parse count (hard)` | 長表掃描多 → 缺索引;磁碟排序多 → PGA/SORT_AREA_SIZE 不足 |
| Segment Statistics (10g+) | Logical Reads, Physical Reads, DB Block Changes per Segment | 熱點表/索引識別 | 找出高讀寫段 → 考慮分區、快取 (KEEP POOL)、索引重建 |
Statspack 為 **手動、被動、粒度較粗** 的診斷工具。Oracle 10g 引入 **AWR (Automatic Workload Repository)** 自動每小時快照、**ASH (Active Session History)** 秒級採樣,**ADDM (Automatic Database Diagnostic Monitor)** 自動根因分析。企業版授權包含 Diagnostic Pack 時,**強烈建議直接使用 AWR/ASH/ADDM**,功能完整度、易用性、自動化程度遠超 Statspack。Statspack 現適用於 Standard Edition 或無 Diagnostic Pack 授權環境。