注意:由于这个报告采样时间只间隔了1秒不到,所以可以看见后面的数据都非常不可思议的。仅仅用来学习只用!!!
第一部分:数据库概要信息
报表头部分是数据库概要信息,包含数据库的一些基本信息(数据库名称、版本号、主机信息等)和采样信息、数据库的cache信息等。
(1)首先是数据库名称、dbid等信息:
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
1293815896 orcl 1 01-11月-11 03:34 10.2.0.4.0 NO
Host Name: linux Num CPUs: 1 Phys Memory (MB): 503
~~~~
(2)接下来是数据库采样时段信息,以及采样点数,这部分信息对于report来说是十分重要的。任何统计数据都需要通过时间维度来衡量,离开了时间,任何数据都失去了意义。
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- -------------------
Begin Snap: 1 01-11月-11 06:24:01 24 11.7
End Snap: 2 01-11月-11 06:24:30 24 12.7
Elapsed: 0.48 (mins)
(3)cache信息,这一部分列举了数据库的内存分配信息。
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 64M Std Block Size: 8K
Shared Pool Size: 84M Log Buffer: 2,812K
第二部分:负载概要信息
数据库的负载概要信息,这些信息分别通过每秒和每个事务形式展现。每秒或每个事务的负载越高,那也就意味着数据库的压力越大!
Load Profile Per Second Per Transaction
~~~~~~~~~~~~ --------------- ---------------
Redo size: 25,338.90 734,828.00
Logical reads: 161.38 4,680.00
Block changes: 42.66 1,237.00
Physical reads: 0.97 28.00
Physical writes: 13.72 398.00
User calls: 1.34 39.00
Parses: 7.34 213.00
Hard parses: 3.21 93.00
Sorts: 3.14 91.00
Logons: 0.00 0.00
Executes: 29.79 864.00
Transactions: 0.03
% Blocks changed per Read: 26.43 Recursive Call %: 99.72
Rollback per transaction %: 0.00 Rows per Sort: 72.25
Redo size信息,单位为bytes:从上面就可以知道数据库每秒产生了大约25338/1024=24KB的redo信息,每个事务平均产生了734828/1024=717KB左右的redo信息。
Logical reads(逻辑读)是指以任何模式进行数据块读取的逻辑读请求次数。计算公式:Logical reads = db block gets + consistent gets
% Blocks changed per Read:从上面可以知道有26%的数据块发生了更改。计算公式:Block changes / Logical reads * 100%
Recursive Call %:从上面可以知道有99%以上的sql发生了递归调用。
Rollback per transaction %:从上面可以知道没有事务回滚操作。计算公式:user rollbacks / (user commits + user rollbacks) * 100%
这里要注意user rollbacks 和 transaction rollbacks 的区别,即使不执行事务,仅仅发出rollback操作,user rollbacks 统计信息也会增长,而transaction rollbacks则仅会在事务回滚时增长。
Rows per Sort:从上面可以知道有72%的行发生了排序操作。
第三部分:实例效率百分比
通过这些性能指标,一个经验丰富的DBA应该能够快速的发现数据库的性能问题。
Instance Efficiency Percentages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 99.40 In-memory Sort %: 100.00
Library Hit %: 80.51 Soft Parse %: 56.34
Execute to Parse %: 75.35 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: 55.56 % Non-Parse CPU: 77.61
Buffer Hit %:表示当进行数据访问时,在内存中找到数据的百分比,这个比率越高说明物理I/O就越少。现在随着硬件能力的扩展,这个比率较低的情况已经越来越少。根据传统的建议,通常这个比率应该维持在99%左右,如果这个比率低于95%就应当引起注意。
In-memory Sort %:从上面可以知道100%的排序操作都是在内存中完成的。
Soft Parse %:从上面可以知道有44%的sql发生了硬解析,这个比率通常应该在99%以上。
Execute to Parse %:执行次数对分析次数的百分比。太低,说明存在大量的反复解析,数据库就存在性能问题。
Parse CPU to Parse Elapsd %:这个指标说明在sql解析过程中cpu消耗的时间,数值越高则说明等待的时间越短,理想值是100%。
% Non-Parse CPU:CPU非分析时间在整个CPU时间的百分比。从上面可以说明33%的时间用在sql执行上面。
第四部分:数据库的响应时间
这部分列出了最消耗时间的TOP5事件。
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
----------------------------------------- ------------ ----------- ------ ------
CPU time 1 69.5
control file parallel write 14 0 14 19.9
log file parallel write 3 0 12 3.8
control file sequential read 240 0 0 3.8
log file sync 1 0 22 2.2
这个Waits表示等待的次数!
结合后面的统计信息:
Instance Activity Stats DB/Inst: ORCL/orcl Snaps: 1-2
Statistic Total per Second per Trans
--------------------------------- ------------------ -------------- ------------
CPU used by this session 67 2.3 67.0
DB time 6,166 212.6 6,166.0
parse time cpu 15 0.5 15.0
parse time elapsed 27 0.9 27.0
recursive calls 13,846 477.5 13,846.0
recursive cpu usage 65 2.2 65.0
CPU used by this session:这是所有session使用的cpu的累计值,也就是Oracle数据库及其相关session所耗用的cpu时间。
parse time cpu:指进行sql解析所花费的时间,如果parse time cpu占用cpu time的很大百分比,那么说明cpu时间被花费在解析sql上而不是执行。比如大量的硬解析!
DB time = cpu Time + wait time;
第五部分:主机系统信息
Host CPU (CPUs: 1)
~~~~~~~~ Load Average
Begin End User System Idle WIO WCPU
------- ------- ------- ------- ------- ------- --------
0.09 0.11 1.14 2.18 96.54 1.93
Instance CPU
~~~~~~~~~~~~
% of total CPU for Instance: 3.75
% of busy CPU for Instance: 108.32
%DB time waiting for CPU - Resource Mgr:
Memory Statistics Begin End
~~~~~~~~~~~~~~~~~ ------------ ------------
Host Mem (MB): 503.3 503.3
SGA use (MB): 160.0 160.0
PGA use (MB): 96.8 97.2
% Host Mem used for SGA+PGA: 51.0 51.1
第六部分:详细信息
把剩余部分归入详细信息一类,这些信息都是详细的数据库信息列表,在此前各部分发现的问题就可以通过这些具体信息进一步定位和诊断。(这里就不在列出)