内容包括
statspack安装
statspack报告的详细说明
Statspack 使用说明
一.statspack系统安装
二.Statspack介绍
三.Statspack使用
四.Statspack报告说明
一.statspack系统安装
statspack的安装程序在@?/rdbms/admin/下:
spcreate.sql 安装
spdrop.sql
卸载
spauto.sql:
生成自动采集数据任务
spreport.sql
生成分析报告
spuexp.sql
参数文件
sppurge.sql
清除不在需要的数据
sptrunc.sql
清除所有的数据
sprepsql.sql:用于根据给定的SQL HASH值生成SQL报告
为了能顺利地运行Statspack 工具,则需要设置以下参数:
job_queue_processes0 (如果不采用自动采集数据则可不设)
timed_statistics=true (如果不采用自动采集数据则可不设)
安装
1.建一个单独的表空间用于Statspack 或建在tools表空间上(100MB)
$sqlplus “/ as sysdba”
SQLcreate tablespace perfstat
SQLdatafile ‘/oracle/oradata/perfstat.dbf’
SQLsize 500M extent management local;
2.建用户perfstat及表
SQL@?/rdbms/admin/spcreate.sql
要求输入表空间及临时表空间.
建完后会在本目录下生成:
spauto.lis
spcpkg.lis
spctab.lis
spcusr.lis
spdtab.lis
spdusr.lis
grep ?I “ora-“ *.lis 查看是否有错。
3.删除statspack表
SQL@?/rdbms/admin/spdrop.sql
4.测试statspack
采样数据
SQL exec statspack.snap
后隔几分钟后再次采样数据
SQL exec statspack.snap
生成报表
SQL@?/rdbms/admin/spreport.sql
二.Statspack介绍
Oracle9i调优顺序一般采用自顶向下的顺序:
Statspack源于utlbstat和utlestat工具,在执行快照时,statspack会从 SGA内部的RAW内存结构中来采样数据,并将结果存入相应表中。
RAW
v$内存结构表 à statspack stats$内存结构表
V$sysstat stats$sysstat
V$sgastat stats$sgastat
V$parameter stats$parameter
V$librarycache stats$librarycache
1. 外部环境
内存
vmstat
bash-2.03$ vmstat 2 5
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s1 -- in sy cs us sy id
0 0 0 9868032 2120968 14 3 159 8 8 0 0 0 0 24 0 306 455 1204 1 2 97
0 1 0 9813224 2154792 29 6 0 20 20 0 0 0 0 39 0 388 9587 2353 3 3 94
0 0 0 9813224 2154296 39 0 0 40 40 0 0 0 1 46 0 393 9529 2363 5 3 92
0 1 0 9813224 2153736 36 3 0 20 20 0 0 0 0 48 0 397 9387 2364 3 3 93
0 0 0 9813224 2153232 37 3 0 20 20 0 0 0 0 48 0 397 9483 2360 4 3 93
其中:
CPU瓶颈:
proc下:
r:正在运行的任务队列,当rCPU数量时,则会出现CPU等待瓶颈
查看CPU个数:
psrinfo ?v|grep ?I “status of processor” | wc -l
RAM瓶颈:
Page下:
Pi:页导入次数:如果RAW短缺时,系统会产生pi操作
查看内存容量
prtconf|grep ?i “mem”
2. 系统IO
sar ?d
bash-2.03$ sar -d 2 2
SunOS mydb001 5.8 Generic_108528-13 sun4us 01/09/04
08:35:11 device %busy avque r+w/s blks/s avwait avserv
08:35:13 nfs1 0 0.0 0 0 0.0 0.0
sd0 0 0.0 0 0 0.0 0.0
sd1 0 0.0 0 40 0.0 6.3
sd1,a 0 0.0 0 40 0.0 6.3
sd1,c 0 0.0 0 0 0.0 0.0
sd1,d 0 0.0 0 0 0.0 0.0
sd1,e 0 0.0 0 0 0.0 0.0
sd1,f 0 0.0 0 0 0.0 0.0
sd16 28 0.5 51 817 0.0 10.2
sd16,a 28 0.5 51 817 0.0 10.2
sd16,c 0 0.0 0 0 0.0 0.0
ohci0,bu 0 0.0 0 0 0.0 0.0
ohci0,ct 0 0.0 0 0 0.0 0.0
ohci0,in 0 0.0 0 0 0.0 0.0
ohci0,is 0 0.0 0 0 0.0 0.0
ohci0,to 0 0.0 0 0 0.0 0.0
08:35:15 nfs1 0 0.0 0 0 0.0 0.0
sd0 0 0.0 0 0 0.0 0.0
sd1 0 0.0 1 79 0.0 4.9
sd1,a 0 0.0 1 79 0.0 4.9
sd1,c 0 0.0 0 0 0.0 0.0
sd1,d 0 0.0 0 0 0.0 0.0
sd1,e 0 0.0 0 0 0.0 0.0
sd1,f 0 0.0 0 0 0.0 0.0
sd16 27 0.5 47 745 0.0 10.4
sd16,a 27 0.5 47 745 0.0 10.4
sd16,c 0 0.0 0 0 0.0 0.0
ohci0,bu 0 0.0 0 0 0.0 0.0
ohci0,ct 0 0.0 0 0 0.0 0.0
ohci0,in 0 0.0 0 0 0.0 0.0
ohci0,is 0 0.0 0 0 0.0 0.0
ohci0,to 0 0.0 0 0 0.0 0.0
Average nfs1 0 0.0 0 0 0.0 0.0
sd0 0 0.0 0 0 0.0 0.0
sd1 0 0.0 1 59 0.0 5.4
sd1,a 0 0.0 1 59 0.0 5.4
sd1,c 0 0.0 0 0 0.0 0.0
sd1,d 0 0.0 0 0 0.0 0.0
sd1,e 0 0.0 0 0 0.0 0.0
sd1,f 0 0.0 0 0 0.0 0.0
sd16 27 0.5 49 781 0.0 10.3
sd16,a 27 0.5 49 781 0.0 10.3
sd16,c 0 0.0 0 0 0.0 0.0
ohci0,bu 0 0.0 0 0 0.0 0.0
ohci0,ct 0 0.0 0 0 0.0 0.0
ohci0,in 0 0.0 0 0 0.0 0.0
ohci0,is 0 0.0 0 0 0.0 0.0
ohci0,to 0 0.0 0 0 0.0 0.0
说明 :
一般%busy高些,%avque低些,文件系统的效率会较高,目前系统文件系统效率已达到
三.Statspack使用
3. 手工采样数据
sqlplus perfstat/perfstat
SQL exec statspack.snap
后隔几分钟后再次采样数据
SQL exec statspack.snap
生成报表
SQL@?/rdbms/admin/spreport.sql
4. 系统自动采样数据
定义定时任务
修改spauto.sql内容,定义采样数据的时间间隔
dbms_job.submit(:jobno,’statspack.snap;’,trunc(sysdate+1/24,”HH”),’trunc(sysdate+1/24,”HH”),TRUE,:instno);
一天24小时,1440分钟,则:
每小时一次: 1/24 (建议使用)
每30分钟一次:
1/48
每10分钟一次 1/144
每5分钟一次 1/288
后执行
SQL@?/rdbms/admin/spauto.sql
生成分析报告
SQL@?/rdbms/admin/spreport.sql
停止定时任务
sqlplus perfstat/perfstat
SQLselect job,interval from user_jobs;
SQLexec dbms_job.remove(‘:job_no’);
删除历史数据
delete from stats$snapshot where snap_id
删除全部数据
SQL@?/rdbms/admin/sptrunc.sql
四.Statspack报告说明
Statspack报告分为几个部分:
5. 数据库总体信息
6. 每秒每事务的资源消耗情况
7. 实例的各组件的命中率
8. 共享池总体情况
9. 前5个等待事件
10. DB所有等待事件
11. 后台进程等待事件
12. 根据BufferGets进行排序的SQL
13. 按物理IO进行排序的SQL
14. 按执行次数排序的SQL
15. 按分析次数排序的SQL
16. 实例的当前活动的统计数据
17. tablespace IO统计数据
18. 表空间文件 IO统计数据
19. buffer池统计数据
20. 实例恢复统计数据
21. Buffer池的参考数据
22. Buffer等待统计数据
23. PGA总体统计数据 1
24. PGA总体统计数据2
25. PGA内存参考数据
26. 回滚段统计
27. 回滚段存储统计
28. undo段总体情况
29. undo段统计
30. 锁存器的当前情况
31. 锁存器睡眠等待统计
32. 锁存器失败情况
33. 数据字典cache性能统计
34. 库cache 性能统计
35. 共享池性能统计
36. SGA区总体情况
37. SGA各组件的活动情况
38. 系统配置参数
STATSPACK report for
------------------------------------1.DB的总体信息----------------------------------------
DB Name DB Id Instance Inst Num Release Cluster Host
------------ ----------- ------------ -------- ----------- ------- ------------
MYDB 2125240762 mydb 1 9.2.0.1.0 NO VCS-SERVER1
Snap Id Snap Time Sessions Curs/Sess Comment
------- ------------------ ------- --------- -------------------
Begin Snap: 1 09-Aug-04 19:28:12 32 2.7
End Snap: 2 09-Aug-04 19:33:06 32 3.0
Elapsed: 4.90 (mins) (本次报告的间隔时间)
Cache Sizes (end)
~~~~~~~~~~~~~~~~~
Buffer Cache: 1,536M Std Block Size: 8K
Shared Pool Size: 112M Log Buffer: 16,000K
--------------------------2.每秒每事务的资源消耗情况---------------------
Load Profile
~~~~~~~~~~~~ Per Second (每秒) Per Transaction(每事务)
--------------- ---------------
Redo size: 38,498.93 6,733.30 ?每秒/每事务产生的redo