一、statspack 输出结果中必须查看的十项内容
1、负载间档(Load profile)
2、实例效率点击率(Instance efficiency hit ratios)
3、首要的5个等待事件(Top 5 wait events)
4、等待事件(Wait events)
5、闩锁等待
6、首要的SQL(Top sql)
7、实例活动(Instance activity)
8、文件I/O(File I/O)
9、内存分配(Memory allocation)
10、缓冲区等待(Buffer waits)
二、输出结果解释
1、报表头信息
数据库实例相关信息,包括数据库名称、ID、版本号及主机等信息
Quote:
STATSPACK report for
DB Name
DB Id
Instance
Inst Num Release
Cluster Host
------------ ----------- ------------ -------- ----------- ------- ------------
PORMALS
3874352951 pormals
1 9.2.0.4.0
NO
NJLT-SERVER1
Snap Id
Snap Time
Sessions Curs/Sess Comment
------- ------------------ -------- --------- -------------------
Begin Snap:
36
18-7月 -04 20:41:02
29
19.2
End Snap:
37
19-7月 -04 08:18:27
24
15.7
Elapsed:
697.42 (mins)
Cache Sizes (end)
~~~~~~~~~~~~~~~~~
Buffer Cache:
240M
Std Block Size:
8K
Shared Pool Size:
96M
Log Buffer:
512K
2、负载间档
该部分提供每秒和每个事物的统计信息,是监控系统吞吐量和负载变化的重要部分
Quote:
Load Profile
~~~~~~~~~~~~
Per Second(秒)
Per Transaction事物
---------------
---------------
Redo size:
148.46
3,702.15
Logical reads:
1,267.94
31,619.12
Block changes:
1.01
25.31
Physical reads:
4.04
100.66
Physical writes:
4.04
100.71
User calls:
13.95
347.77
Parses:
4.98
124.15
Hard parses:
0.02
0.54
Sorts:
1.33
33.25
Logons:
0.00
0.02
Executes:
2.46
61.37
Transactions:
0.04
% Blocks changed per Read:
0.08
Recursive Call %:
30.38
Rollback per transaction %:
0.42
Rows per Sort:
698.23
说明:
Redo size:每秒产生的日志大小(单位字节),可标志数据库任务的繁重与否
Logical reads:平决每秒产生的逻辑读,单位是block
block changes:每秒block变化数量,数据库事物带来改变的块数量
Physical reads:平均每秒数据库从磁盘读取的block数
Physical writes:平均每秒数据库写磁盘的block数
User calls:每秒用户call次数
Parses:每秒解析次数,近似反应每秒语句的执行次数
软解析每秒超过300次意味着你的"应用程序"效
率不高,没有使用soft soft parse,调整session_cursor_cache
Hard parses:每秒产生的硬解析次数
Sorts:每秒产生的排序次数
Executes:每秒执行次数
Transactions:每秒产生的事务数,反映数据库任务繁重与否
3、实例命中率
该部分可以提前找出ORACLE潜在将要发生的性能问题,很重要
Quote:
Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %:
100.00
Redo NoWait %:
100.00
Buffer
Hit
%:
99.96
In-memory Sort %:
99.14
Library Hit
%:
99.53
Soft Parse %:
99.57
Execute to Parse %: -102.31
Latch Hit %:
100.00
Parse CPU to Parse Elapsd %:
81.47
% Non-Parse CPU:
96.46
说明:
Buffer Nowait %:在缓冲区中获取Buffer的未等待比率
Redo NoWait %:在Redo缓冲区获取Buffer的未等待比率
Buffer
Hit %:数据块在数据缓冲区中得命中率,通常应在90%以上,否则,需要调整
In-memory Sort %:在内存中的排序率
Library Hit
%:主要代表sql在共享区的命中率,通常在95%以上,否,需要要考虑加
大共享池,绑定变量,修改cursor_sharing等参数。
Soft Parse %:近似看作sql在共享区的命中率,小于
那么就可能sql基本没有被重用
Execute to Parse %:sql语句解析后被重复执行的次数,如果过低,可以考虑设置
session_cached_cursors参数
Parse CPU to Parse Elapsd %:解析实际运行事件/(解析实际运行时间+解析中等待资源时间)
越高越好
% Non-Parse CPU:查询实际运行时间/(查询实际运行时间+sql解析时间),太低表示解析消耗时间过多。
Quote:
Shared Pool Statistics
Begin
End
------
------
Memory Usage %:
33.79
57.02
% SQL with executions1:
62.62
73.24
% Memory for SQL w/exec1:
64.55
78.72
Shared Pool相关统计数据
Memory Usage %:共享池内存使用率,应该稳定在75%-90%间,太小浪费内存,太大则内存不足。
% SQL with executions1:执行次数大于1的sql比率,若太小可能是没有使用bind variables。
% Memory for SQL w/exec1:也即是memory for sql with execution 1:执行次数大于1的sql
消耗内存/所有sql消耗的内存
4、首要等待事件
Quote:
Top 5 Timed Events
~~~~~~~~~~~~~~~~~~
% Total
Event
Waits
Time (s) Ela Time
-------------------------------------------- ------------ ----------- --------
CPU time
581
63.58
SQL*Net more data to client
223,918
257
28.14
control file parallel write
13,595
24
2.66
direct path read
4,411
17
1.86
db file sequential read
2,851
12
1.28
常见等待事件说明:
oracle等待事件是衡量oracle运行状况的重要依据及指示,主要有空闲等待事件和非空闲等待事件
;空闲等待事件是oracle正等待某种工作,在诊断和优化数据库时候,不用过多注意这部分事件,
非空闲等待事件专门针对oracle的活动,指数据库任务或应用程序运行过程中发生的等待,这些等待事件是我们在调整数据库应该关注的。