Statpack 的基本使用方法
1 安装
(1)表空间准备
首先以SYS身份建一个单独的表空间,要求比较大,最好1,2G
create tablespace statpack;
datafile 'D:/oracle/oradata/zero_plus/db01/statpack.dbf' size 2000m autoextend on next 10M
extent management local uniform size 128k segment space management auto;
注意system表空间不能被用于perfstat用户的默认表空间。
drop tablespace statpacktemp;
create temporary tablespace statpacktemp
tempfile 'D:/oracle/oradata/zero_plus/db01/statpacktemp.dbf' size 200m reuse autoextend on next 10M extent management local uniform size 128k segment space management manual;
(2)运行脚本(运行脚本最好在sqlplus下,不要用像pl/sql的工具)
接着运行oracle_home dbms/admin目录下的spcreate.sql
验证安装为:
execute statspack.snap
2 基本使用
(1)获取快照:execute statspack.snap
(2)获取报告:
一定要用perfstat/perfstat登陆,然后
执行@spreport.sql
定义好报告文件(在最后一步),就可以查看生成的报表了.
如果是有多个实例的话,要执行sprepins.sql去生成报告.
(3)自动获取快照
执行脚本D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/spauto.sql
注意因为有采样时间,所以可以在spauto.sql中去改的,找到: dbms_job.submit(:job,'statspack.snap;',trunc(sysdate+1/24,'hh24'),'trunc(sysdate+1/24,''hh24'')'); 去修改.
查看snapshot列表
select snap_id,snap_time,startup_time from stats$snapshot;
(4)查看某个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
然后执行@sprepsql.sql,输入那个hash值即可看到相关的执行计划