安装statspack
1:进入ORACLE_HOME/RDBMS/ADMIN目录下,并登录sqlpl / as sysdba
2:创建一个专用的表空间SQL> create tablespace stats datafile 'E:\oracle\oradata\mydb\stats.dbf' size 100M autoextend on;
如果创建表空间的时候没有指定自动扩展,则无法安装statspack
修改表空间自动扩展:如下
SQL> alter database datafile 'E:\oracle\oradata\mydb\STATS.DBF' autoextend on;
3:开始创建
SQL> @spcreate
输入perfstat 用户的密码:fang (任意输入,之后可以修改)
输入表空间:stats
输入临时表空间:temp
…………
…………
测试
4:采样,采集2个时间点样本
SQL> execute statspack.snap
PL/SQL 过程已成功完成。
SQL> execute statspack.snap
PL/SQL 过程已成功完成。
5:生成报告
SQL> @spreport
输入第一个采集的时间点:1
输入最后一个采集时间点:2
输入生成报告的位置:D:/a.txt
这样就生成了2个时间点之间的报告
6:规划自动任务
修改ORACLE_HOME/RDBMS/ADMIN/spauto.sql文件中的时间间隔,然后直接执行
SQL> @spauto
就可以了。
spauto.sql中内容如下
variable jobno number;
variable instno number;
begin
select instance_number into :instno from v$instance;
dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/(24*60),'MI'), 'trunc(SYSDATE+1/(24*60),''MI'')', TRUE, :instno);
commit;
end;
/
7:移除自动任务
select job,what from user_jobs;
begin
dbms_job.remove(1);
end;
8:删除采集点
方法1:
select * from stats$snapshot ;
delete from stats$snapshot where snap_id<3;
方法2:
SQL> @sppurge
输入起始时间点:1
输入结束时间点:2
(这种发方式成大量归档日志)