关于Oracle Statspack
statspack - Statistics Package (STATSPACK) Oracle 9i之前使用的数据库信息收集工具
Oracle Statspack 工具使用
Oracle Statspack 相关脚本
脚本位置$ORACLE_HOME/rdbms/admin/
spcreate.sqlstatspack 工具安装脚本
spdrop.sqlstatspack 工具卸载脚本
spdoc.txtstatspack README文档
spreport.sqlstatspack 报表创建脚本
sprepins.sqlstatspack 报表生成脚本,被spreport.sql调用,分析该脚本可帮助理解statspack中各个数据的意义
spauto.sql利用dbms_job提交一个作业,自动的进行STATPACK的信息收集统计
sppurge.sql清除一段范围内的统计信息,需要提供开始快照与结束快照号
sptrunc.sql清除(truncate)所有统计信息
Oracle Statspack 安装卸载
使用sysdba角色用户连接数据库;
执行$ORACLE_HOME/rdbms/admin/spcreate.sql;
指定PERFSTAT用户密码;
指定PERFSTAT用户默认永久表空间,默认为SYSAUX;
指定PERFSTAT用户默认临时表空间,默认为TEMP;
等待脚本执行完毕;
检查spcpkg.lis文件有无报错;
若创建失败可以执行spdrop.sql脚本,然后重新执行spcreate.sql
生成标准Oracle Statspack 统计报表
使用PERFSTAT用户连接数据库;
执行 execute statspack.snap 两次;
exec statspack.snap; -- 用于进行信息收集统计,每次运行都将产生一个快照号,必须要有两个以上的快照,才能生成报表
执行@?/rdbms/admin/spreport.sql;
指定开始快照id与结束快照id;
指定生成报告的文件名,默认会根据前面输入的 snap_id 生成文件 名;
等待报告输出;
打开&查看&分析报表;
自动进行Oracle Statspack 快照生成
使用PERFSTAT用户连接数据库;
执行@?/rdbms/admin/spauto.sql
该脚本执行后将利用dbms_job提交一个作业:从当前时间点起,每个整点自动执行一次 execute statspack.snap
如需停止该任务可如下操作:
执行如下脚本查看当前job序号及下次执行时间:
select job, next_date, next_sec from user_jobs where job = :jobno;
执行如下脚本停止自动任务
exec dbms_job.broken(26,false);
执行如下脚本删除自动任务
exec dbms_job.remove(26);
清理指定范围的Oracle Statspack 快照
使用PERFSTAT用户连接数据库;
执行@?/rdbms/admin/sppurge.sql
指定需要清理的快照范围的低快照id;
指定需要清理的快照范围的高快照id;
等待清理完成;
清理所有Oracle Statspack 统计表
使用PERFSTAT用户连接数据库;
执行@?/rdbms/admin/sptrunc.sql
回车确认清理所有Statspack表 & 输入exit退出操作;
等待清理完成;
查选快照信息:
perfstat@SUN> select SNAP_ID, SNAP_TIME from STATS$SNAPSHOT;
SNAP_ID SNAP_TIME
---------- -------------------
1 2012-11-20 14:20:19
2 2012-11-20 14:24:26
问号代表 $ORACLE_HOME