/sqlplus /nolog
conn / as sysdba
-- 1. 建立專用表空間 (建議 ≥ 80MB,啟用自動擴展)
create tablespace statspack
datafile 'statspack_tbs.dbf'
size 100M autoextend on
extent management local uniform size 128K;
-- 2. 執行安裝腳本
@?/rdbms/admin/spcreate.sql
安裝過程會提示輸入:
oracle)statspacktemp安裝完成後會自動以 perfstat 連線,可執行 show user 驗證。
-- 1. 擷取快照 (至少兩次,中間間隔一段時間)
exec statspack.snap;
-- 等待負載發生...
exec statspack.snap;
-- 2. 產生報告
@?/rdbms/admin/spreport.sql
腳本會提示輸入:
使用文字編輯器開啟產出的報告檔,重點關注:
conn / as sysdba
@?/rdbms/admin/spdrop.sql -- 移除現有物件
-- 確認清理完成後重新執行 spcreate.sql
-- 建立每 15 分鐘自動擷取快照的 Job
@?/rdbms/admin/spauto.sql
-- 查看已建立的 Job
select * from dba_jobs;
-- 移除自動收集 (記下 job_id 後執行)
conn perfstat/oracle
exec dbms_job.remove(job_id);
排程參數說明:SYSDATE + (1/24/4) 代表每 15 分鐘 (1天/24小時/4)。可依業務需求調整間隔。
sppurge.sql 清除過舊快照,避免表空間暴增結語:Statspack 是 Oracle 9i 時代效能診斷的核心工具。掌握快照擷取時機、報告解讀技巧與自動化排程,是 DBA 進行效能調優的基本功。