首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 9i Statspack 安裝、使用與自動化完整指南

     編輯:Oracle 資料庫基礎

測試環境

  • OS:Windows XP
  • Oracle:9.2.0.1
  • Linux/Unix 路徑分隔符請自行轉換為 /

一、 Statspack 安裝步驟

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

安裝過程會提示輸入:

  • perfstat 用戶密碼 (範例:oracle)
  • 預設表空間:statspack
  • 暫存表空間:temp

安裝完成後會自動以 perfstat 連線,可執行 show user 驗證。

二、 手動產生效能報告

-- 1. 擷取快照 (至少兩次,中間間隔一段時間)
exec statspack.snap;
-- 等待負載發生...
exec statspack.snap;

-- 2. 產生報告
@?/rdbms/admin/spreport.sql

腳本會提示輸入:

  • 開始與結束快照 ID (必須屬同一資料庫啟動週期且連續)
  • 報告檔名 (可採預設)

三、 報告分析與常見問題修正

使用文字編輯器開啟產出的報告檔,重點關注:

  • Load Profile:每秒交易量、邏輯/物理讀寫
  • Top 5 Timed Events:等待事件分析
  • SQL ordered by Gets/Reads/Executions:高消耗 SQL 識別
  • Instance Efficiency Percentages:緩衝區命中率、Library Cache 命中率

安裝失敗如何重來?

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,SID 區分
  • 升級至 AWR:Oracle 10g 以上建議改用 AWR (Automatic Workload Repository),功能更強大且內建 Enterprise Manager 整合

結語:Statspack 是 Oracle 9i 時代效能診斷的核心工具。掌握快照擷取時機、報告解讀技巧與自動化排程,是 DBA 進行效能調優的基本功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved