StatsPack 是9i使用的性能分析工具,如果建立数据库的时候没有,可以手动创建

新建perfstat表空间

create tablespace PERFSTAT LOGGING DATAFILE '/oradata/mescp/perfstat01.dbf' SIZE 2048M AUTOEXTEND off
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

新建相关用户和表表

sqlplus  "/ as sysdba"

SQL> @?/rdbms/admin/spcreate.sql

设置自动执行

SQL>@?/rdbms/admin/spauto.sql

清除statpack信息

SQL>@?/rdbms/admin/sptrunc.sql

删除statpack

@?/rdbms/admin/spdrop.sql

自动获取statpack报告

我们可以利用下面的脚本定时获取并保存前一个小时的sp报告

0 * * * *  /oraassy/home/sp.sh
vim sp.sh

#!/bin/sh
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_OWNER=oracle
export ORACLE_BASE=/oraassy/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=mesassy
date=`date +'%y%m%d%H'`
spfile="/expbackup/statpack/spreport_$date.lst"
$ORACLE_HOME/bin/sqlplus perfstat/perfstat@$ORACLE_SID << EOF
column esnap new_value end_snap noprint
select max(snap_id) as esnap from stats\$snapshot;
column bsnap new_value begin_snap noprint
select max(snap_id)-1 as bsnap from stats\$snapshot;
define report_name=$spfile
@?/rdbms/admin/spreport
EOF