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
```