oracle中,做性能统计的话,用statpack是个不错的选择,但不是图形界面,比较麻烦些,用法比较多,一般大概掌握其基本用法,到时
用到去查就可以了.
1 安装
首先以SYS身份建一个单独的表空间,要求比较大,最好1,2G
create tablespace perfstat datafile 'f:"oracle"oradata"jssweb"perfstat.dbf' size 2000m;
接着运行oracle_home\rdbms\admin目录下的spcreate.sql
输入密码perfstat
选好表空间为刚才建立的perfstat等,最后安装成功
验证安装为:
execute statspack.snap
2 基本使用
一定要用perfstat/perfstat登陆,然后
执行@spreport.sql,
会问你输入snapshotid, 就是天数了,输入开始和结束天数的数字,
定义好报告文件(在最后一步),就可以查看生成的报表了.
注意因为有采样时间,所以可以在spauto.sql中去改的,找到:
dbms_job.submit(:job,'statspack.snap;',trunc(sysdate+1/24,'hh24'),'trunc(sysdate+1/24,''hh24'')');
去修改.
如果是有多个实例的话,要执行sprepins.sql去生成报告.
查看当前的JOB
select job,schema_user,next_date,interval,what from user_jobs
查看snapshot列表
select snap_id,snap_time,startup_time from stats$snapshot;
查看某个SQL语句执行计划的话,首先要用spreport找出这些SQL语句,记下其hash值
CPU Elapsd Old
Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
250,175 259 965.9 63.5 36.93 386.17 2689373535
然后执行@spresql.sql,输入那个hash值即可看到相关的执行计划
最后是ITPUB一个很好的教程statpack