statspack安装使用

阅读更多

网上流传eygle写的statspack已经写的比较详细了,我只是写一个简短一些的

 

一,修改系统参数

sql>show parameter job_queue

查看当前工作队参数是否大于0,等于0的,要修改一下

alter system job_queue_processes=5 scope=both

 

sql>show parameter timed_statistics

查看是否起动了系统的计时信息,在不进行快照收集时,要将这个参数置为false

alert system set timed_statistics = true scope = both

 

二,安装

安装statspack在8.1.6以前版本时,要以internal身份登录,以后的版本以使用sys的sysdba的身份登录进行安装

(1)进入命令提示符,cd到ORACLE_HOME/rdbms/admin目录下,这样方便执行脚本

(2)通过sqlplus登录数据库:sql>sqlplus "sys/password as sysdba"

(3)创建statspack工具收集数据所使用的表空间,原则上不能小于100m

create tablespace perfstat

datafile 'd:\oracle\oradata\orcl\perfstat.dbf

size 500m

extent management local;

(4)执行spcreate.sql脚本,8.1.6版本执行statscr.sql脚本

sql>@spcreate

其过程中,会让你输入default_tablespace,temporary_tablespace和password

如果提示有任何错误,最好先执行spdrop.sql脚本,然后再找到问题,重新安装

错误提示信息在admin目录j里的sp*.lis文件中

 

(5)测试安装好的statspack

sql>execute statspack.snap

sql>execute statspack.snap

至少要执行两次快照收集

再执行报表工具,生成快照分析报表

sql>@spreport

过程中会提示你输入进行性能分析的快照开始序号,结束序号和报表名称

 注意分析的快照之间不能有一次关机的操作,否则分析出来的数据肯定不正确,而且报告中也会给出错误信息

三,规划自动任务

admin目录下还有一个文件spauto.sql文件,用来发一起执行收集快照的一个工作脚本,主要内容如下

dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/288,'MI'), 'trunc(SYSDATE+1/288,''MI'')', TRUE, :instno);

1/24 HH:表示每一小时一次

1/48 MI :每半小时一次

1/144 MI :每十分钟一次

1/288 MI:每五分钟一次

原则上自动的收集时间间隔,最少不要少于半个小时,否则一旦忘记删除任务,statspack会收集N多数据,有可能会导入磁盘空间满而且导致宕机.

所以执行一个自动任务,一定不要忘记事后把它删除掉

 

四,删除历史数据

删除了表stats$snapshot的数据,其它表的数据也会级连删除的,不过在数据量比较大量,可以使用系统提供的sptrunc.sql脚本来删除数据.

 

五,删除自动任务

dbms_job.remove("job_id")

 

六,报告简要分析

见另外一篇文章,

文章来自于互联网

 

 

 

你可能感兴趣的:(SQL,脚本,Oracle,互联网,工作)