Statspack 是 Oracle 內建的免費效能分析工具,需 SYSDBA 權限安裝。本文記錄完整安裝流程與關鍵決策點。
SQL> SHOW USER;
USER is "SYS"
SQL> SELECT file_name FROM dba_data_files;
-- 確認現有資料檔路徑,規劃新表空間位置
CREATE TABLESPACE perfstat
DATAFILE 'F:\Oracle\oradata\JSSWEB\perfstat.dbf'
SIZE 2000M;
-- 注意:Statspack 報表資料佔用空間大,建議預留充足空間,啟用自動擴展
SQL> @spcreate
-- 腳本位置:$ORACLE_HOME\rdbms\admin\spcreate.sql
| 提示 | 輸入值 | 說明 |
|---|---|---|
| PERFSTAT 密碼 | perfstat | 不可為空,否則安裝失敗 |
| 預設表空間 | perfstat | 選擇剛建立的表空間,勿用 SYSTEM |
| 暫存表空間 | temp | 通常為預設暫存表空間 |
SQL> SHOW USER;
USER is "PERFSTAT"
-- 安裝腳本會自動切換至 PERFSTAT 使用者
-- 檢查安裝日誌
-- spcpkg.lis (位置可能在 My Documents,非腳本目錄)
-- 若有錯誤:@spdrop 移除 → 檢查日誌 → 重新 @spcreate
AUTOEXTEND ONspcpkg.lis 可能不在腳本目錄,搜尋全盤確認@spdrop → 確認日誌 → @spcreateSELECT_CATALOG_ROLE 等權限,僅供效能分析使用' 手動採樣
EXEC statspack.snap;
' 自動排程採樣 (DBMS_JOB)
VAR jobno NUMBER;
BEGIN
DBMS_JOB.SUBMIT(:jobno, 'statspack.snap;', SYSDATE, 'SYSDATE + 1/24'); -- 每小時
COMMIT;
END;
/
' 產生報表
@spreport
-- 輸入 begin_snap, end_snap, report_name
安裝完成只是開始,持續的採樣排程與定期報表分析才能發揮 Statspack 真正價值。