Oracle_AWR_报告分析实例讲解
来源:互联网 发布:大数据分析课程 编辑:程序博客网 时间:2024/05/24 06:38
DB Name
DB Id
Instance
Inst num
Release
RAC
Host
ICCI
1314098396
ICCI1
1
10.2.0.3.0
YES
HPGICCI1
Snap Id
Snap Time
Sessions
Cursors/Session
Begin Snap:
2678
25-Dec-08 14:04:50
24
1.5
End Snap:
2680
25-Dec-08 15:23:37
26
1.5
Elapsed:
78.79 (mins)
DB Time:
11.05 (mins)
DB Time不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。
在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。说明系统压力非常小。
可是对于批量系统,数据库的工作负载总是集中在一段时间内。如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。
Report Summary
Cache Sizes
Begin
End
Buffer Cache:
3,344M
3,344M
Std Block Size:
8K
Shared Pool Size:
704M
704M
Log Buffer:
14,352K
显示SGA中每个区域的大小(在AMM改变它们之后),可用来与初始参数值比较。
shared pool主要包括library cache和dictionary cache。library cache用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。library cache用来存储最近引用的数据字典。发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。因此shared pool的设置要确保最近使用的数据都能被cache。
Load Profile
Per Second
Per Transaction
Redo size:
918,805.72
775,912.72
Logical reads:
3,521.77
2,974.06
Block changes:
1,817.95
1,535.22
Physical reads:
68.26
57.64
Physical writes:
362.59
306.20
User calls:
326.69
275.88
Parses:
38.66
32.65
Hard parses:
0.03
0.03
Sorts:
0.61
0.51
Logons:
0.01
0.01
Executes:
354.34
299.23
Transactions:
1.18
% Blocks changed per Read:
51.62
Recursive Call %:
51.72
Rollback per transaction %:
85.49
Rows per Sort:
########
显示数据库负载概况,将之与基线数据比较才具有更多的意义,如果每秒或每事务的负载变化不大,说明应用运行比较稳定。单个的报告数据只说明应用的负载情况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒1~2个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题。
Redo size:每秒/每事务产生的redo大小(单位字节),可标志数据库任务的繁重程序。
Logical reads:每秒/每事务逻辑读的块数
Block changes:每秒/每事务修改的块数
Physical reads:每秒/每事务物理读的块数
Physical writes:每秒/每事务物理写的块数
User calls:每秒/每事务用户call次数
Parses:SQL解析的次数
Hard parses:其中硬解析的次数,硬解析太多,说明SQL重用率不高。
Sorts:每秒/每事务的排序次数
Logons:每秒/每事务登录的次数
Executes:每秒/每事务SQL执行次数
Transactions:每秒事务数
Blocks changed per Read:表示逻辑读用于修改数据块的比例
Recursive Call:递归调用占所有操作的比率
Rollback per transaction:每事务的回滚率
Rows per Sort:每次排序的行数
注:
Oracle的硬解析和软解析
提到软解析(soft parse)和硬解析(hard parse),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:
1、语法检查(syntax check)
检查此sql的拼写是否语法。
2、语义检查(semantic check)
诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。
3、对sql语句进行解析(parse)
利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。
4、执行sql,返回结果(execute and return)
其中,软、硬解析就发生在第三个过程里。
Oracle利用内部的hash算法来取得该sql的hash值,然后在library cache里查找是否存在该hash值;
假设存在,则将此sql与cache中的进行比较;
假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。
诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。
创建解析树、生成执行计划对于sql的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。
Instance Efficiency Percentages (Target 100%)
Buffer Nowait %:
100.00
Redo NoWait %:
100.00
Buffer Hit %:
98.72
In-memory Sort %:
99.86
Library Hit %:
99.97
Soft Parse %:
99.92
Execute to Parse %:
89.09
Latch Hit %:
99.99
Parse CPU to Parse Elapsd %:
7.99
% Non-Parse CPU:
99.95
本节包含了Oracle关键指标的内存命中率及其它数据库实例操作的效率。其中Buffer Hit Ratio 也称Cache Hit Ratio,Library Hit ratio也称Library Cache Hit ratio。同Load Profile一节相同,这一节也没有所谓“正确”的值,而只能根据应用的特点判断是否合适。在一个使用直接读执行大型并行查询的DSS环境,20%的Buffer Hit Ratio是可以接受的,而这个值对于一个OLTP系统是完全不能接受的。根据Oracle的经验,对于OLTPT系统,Buffer Hit Ratio理想应该在90%以上。
Buffer Nowait表示在内存获得数据的未等待比例。
buffer hit表示进程从内存中找到数据块的比率,监视这个值是否发生重大变化比这个值本身更重要。对于一般的OLTP系统,如果此值低于80%,应该给数据库分配更多的内存。
Redo NoWait表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFER。
library hit表示Oracle从Library Cache中检索到一个解析过的SQL或PL/SQL语句的比率,当应用程序调用SQL或存储过程时,Oracle检查Library Cache确定是否存在解析过的版本,如果存在,Oracle立即执行语句;如果不存在,Oracle解析此语句,并在Library Cache中为它分配共享SQL区。低的library hit ratio会导致过多的解析,增加CPU消耗,降低性能。如果library hit ratio低于90%,可能需要调大shared pool区。
Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。要确保Latch Hit>99%,否则意味着Shared Pool latch争用,可能由于未共享的SQL,或者Library Cache太小,可使用绑定变更或调大Shared Pool解决。
Parse CPU to Parse Elapsd:解析实际运行时间/(解析实际运行时间+解析中等待资源时间),越高越好。
Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。
Execute to Parse:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。
In-memory Sort:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA。
Soft Parse:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。
Shared Pool Statistics
Begin
End
Memory Usage %:
47.19
47.50
% SQL with executions>1:
88.48
79.81
% Memory for SQL w/exec>1:
79.99
73.52
Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。
SQL with executions>1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。
Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。
Top 5 Timed Events
Event
Waits
Time(s)
Avg Wait(ms)
% Total Call Time
Wait Class
CPU time
515
77.6
SQL*Net more data from client
27,319
64
2
9.7
Network
log file parallel write
5,497
47
9
7.1
System I/O
db file sequential read
7,900
35
4
5.3
User I/O
db file parallel write
4,806
34
7
5.1
System I/O
这是报告概要的最后一节,显示了系统中最严重的5个等待,按所占等待时间的比例倒序列示。当我们调优时,总希望观察到最显著的效果,因此应当从这里入手确定我们下一步做什么。例如如果‘buffer busy wait’是较严重的等待事件,我们应当继续研究报告中Buffer Wait和File/Tablespace IO区的内容,识别哪些文件导致了问题。如果最严重的等待事件是I/O事件,我们应当研究按物理读排序的SQL语句区以识别哪些语句在执行大量I/O,并研究Tablespace和I/O区观察较慢响应时间的文件。如果有较高的LATCH等待,就需要察看详细的LATCH统计识别哪些LATCH产生的问题。
在这里,log file parallel write是相对比较多的等待,占用了7%的CPU时间。
通常,在没有问题的数据库中,CPU time总是列在第一个。
更多的等待事件,参见本报告 的Wait Events一节。
RAC Statistics
Begin
End
Number of Instances:
2
2
Global Cache Load Profile
Per Second
Per Transaction
Global Cache blocks received:
4.16
3.51
Global Cache blocks served:
5.97
5.04
GCS/GES messages received:
408.47
344.95
GCS/GES messages sent:
258.03
217.90
DBWR Fusion writes:
0.05
0.05
Estd Interconnect traffic (KB)
211.16
Global Cache Efficiency Percentages (Target local+remote 100%)
Buffer access - local cache %:
98.60
Buffer access - remote cache %:
0.12
Buffer access - disk %:
1.28
Global Cache and Enqueue Services - Workload Characteristics
Avg global enqueue get time (ms):
0.1
Avg global cache cr block receive time (ms):
1.1
Avg global cache current block receive time (ms):
0.8
Avg global cache cr block build time (ms):
0.0
Avg global cache cr block send time (ms):
0.0
Global cache log flushes for cr blocks served %:
3.5
Avg global cache cr block flush time (ms):
3.9
Avg global cache current block pin time (ms):
0.0
Avg global cache current block send time (ms):
0.0
Global cache log flushes for current blocks served %:
0.4
Avg global cache current block flush time (ms):
3.0
Global Cache and Enqueue Services - Messaging Statistics
Avg message sent queue time (ms):
0.0
Avg message sent queue time on ksxp (ms):
0.3
Avg message received queue time (ms):
0.5
Avg GCS message process time (ms):
0.0
Avg GES message process time (ms):
0.0
% of direct sent messages:
14.40
% of indirect sent messages:
77.04
% of flow controlled messages:
8.56
Main Report
- Wait Events Statistics
- SQL Statistics
- Instance Activity Statistics
- IO Stats
- Buffer Pool Statistics
- Advisory Statistics
- Wait Statistics
- Undo Statistics
- Latch Statistics
- Segment Statistics
- Dictionary Cache Statistics
- Library Cache Statistics
- Memory Statistics
- Streams Statistics
- Resource Limit Statistics
- init.ora Parameters
Wait Events Statistics
- Time Model Statistics
- Wait Class
- Wait Events
- Background Wait Events
- Operating System Statistics
- Service Statistics
- Service Wait Class Stats
Back to Top
Time Model Statistics
- Total time in database user-calls (DB Time): 663s
- Statistics including the word "background" measure background process time, and so do not contribute to the DB time statistic
- Ordered by % or DB time desc, Statistic name
Statistic Name
Time (s)
% of DB Time
DB CPU
514.50
77.61
sql execute elapsed time
482.27
72.74
parse time elapsed
3.76
0.57
PL/SQL execution elapsed time
0.50
0.08
hard parse elapsed time
0.34
0.05
connection management call elapsed time
0.08
0.01
hard parse (sharing criteria) elapsed time
0.00
0.00
repeated bind elapsed time
0.00
0.00
PL/SQL compilation elapsed time
0.00
0.00
failed parse elapsed time
0.00
0.00
DB time
662.97
background elapsed time
185.19
background cpu time
67.48
此节显示了各种类型的数据库处理任务所占用的CPU时间。
Back to Wait Events Statistics
Back to Top
Wait Class
- s - second
- cs - centisecond - 100th of a second
- ms - millisecond - 1000th of a second
- us - microsecond - 1000000th of a second
- ordered by wait time desc, waits desc
Wait Class
Waits
%Time -outs
Total Wait Time (s)
Avg wait (ms)
Waits /txn
User I/O
66,837
0.00
120
2
11.94
System I/O
28,295
0.00
93
3
5.05
Network
1,571,450
0.00
66
0
280.72
Cluster
210,548
0.00
29
0
37.61
Other
81,783
71.82
28
0
14.61
Application
333,155
0.00
16
0
59.51
Concurrency
5,182
0.04
5
1
0.93
Commit
919
0.00
4
4
0.16
Configuration
25,427
99.46
1
0
4.54
Back to Wait Events Statistics
Back to Top
Wait Events
- s - second
- cs - centisecond - 100th of a second
- ms - millisecond - 1000th of a second
- us - microsecond - 1000000th of a second
- ordered by wait time desc, waits desc (idle events last)
Event
Waits
%Time -outs
Total Wait Time (s)
Avg wait (ms)
Waits /txn
SQL*Net more data from client
27,319
0.00
64
2
4.88
log file parallel write
5,497
0.00
47
9
0.98
db file sequential read
7,900
0.00
35
4
1.41
db file parallel write
4,806
0.00
34
7
0.86
db file scattered read
10,310
0.00
31
3
1.84
direct path write
42,724
0.00
30
1
7.63
reliable message
355
2.82
18
49
0.06
SQL*Net break/reset to client
333,084
0.00
16
0
59.50
db file parallel read
3,732
0.00
13
4
0.67
gc current multi block request
175,710
0.00
10
0
31.39
control file sequential read
15,974
0.00
10
1
2.85
direct path read temp
1,873
0.00
9
5
0.33
gc cr multi block request
20,877
0.00
8
0
3.73
log file sync
919
0.00
4
4
0.16
gc cr block busy
526
0.00
3
6
0.09
enq: FB - contention
10,384
0.00
3
0
1.85
DFS lock handle
3,517
0.00
3
1
0.63
control file parallel write
1,946
0.00
3
1
0.35
gc current block 2-way
4,165
0.00
2
0
0.74
library cache lock
432
0.00
2
4
0.08
name-service call wait
22
0.00
2
76
0.00
row cache lock
3,894
0.00
2
0
0.70
gcs log flush sync
1,259
42.02
2
1
0.22
os thread startup
18
5.56
2
89
0.00
gc cr block 2-way
3,671
0.00
2
0
0.66
gc current block busy
113
0.00
1
12
0.02
SQL*Net message to client
1,544,115
0.00
1
0
275.83
gc buffer busy
15
6.67
1
70
0.00
gc cr disk read
3,272
0.00
1
0
0.58
direct path write temp
159
0.00
1
5
0.03
gc current grant busy
898
0.00
1
1
0.16
log file switch completion
29
0.00
1
17
0.01
CGS wait for IPC msg
48,739
99.87
0
0
8.71
gc current grant 2-way
1,142
0.00
0
0
0.20
kjbdrmcvtq lmon drm quiesce: ping completion
9
0.00
0
19
0.00
enq: US - contention
567
0.00
0
0
0.10
direct path read
138
0.00
0
1
0.02
enq: WF - contention
14
0.00
0
9
0.00
ksxr poll remote instances
13,291
58.45
0
0
2.37
library cache pin
211
0.00
0
1
0.04
ges global resource directory to be frozen
9
100.00
0
10
0.00
wait for scn ack
583
0.00
0
0
0.10
log file sequential read
36
0.00
0
2
0.01
undo segment extension
25,342
99.79
0
0
4.53
rdbms ipc reply
279
0.00
0
0
0.05
ktfbtgex
6
100.00
0
10
0.00
enq: HW - contention
44
0.00
0
1
0.01
gc cr grant 2-way
158
0.00
0
0
0.03
enq: TX - index contention
1
0.00
0
34
0.00
enq: CF - contention
64
0.00
0
1
0.01
PX Deq: Signal ACK
37
21.62
0
1
0.01
latch free
3
0.00
0
10
0.00
buffer busy waits
625
0.16
0
0
0.11
KJC: Wait for msg sends to complete
154
0.00
0
0
0.03
log buffer space
11
0.00
0
2
0.00
enq: PS - contention
46
0.00
0
1
0.01
enq: TM - contention
70
0.00
0
0
0.01
IPC send completion sync
40
100.00
0
0
0.01
PX Deq: reap credit
1,544
99.81
0
0
0.28
log file single write
36
0.00
0
0
0.01
enq: TT - contention
46
0.00
0
0
0.01
enq: TD - KTF dump entries
12
0.00
0
1
0.00
read by other session
1
0.00
0
12
0.00
LGWR wait for redo copy
540
0.00
0
0
0.10
PX Deq Credit: send blkd
17
5.88
0
0
0.00
enq: TA - contention
14
0.00
0
0
0.00
latch: ges resource hash list
44
0.00
0
0
0.01
enq: PI - contention
8
0.00
0
0
0.00
write complete waits
1
0.00
0
2
0.00
enq: DR - contention
3
0.00
0
0
0.00
enq: MW - contention
3
0.00
0
0
0.00
enq: TS - contention
3
0.00
0
0
0.00
PX qref latch
150
100.00
0
0
0.03
enq: MD - contention
2
0.00
0
0
0.00
latch: KCL gc element parent latch
11
0.00
0
0
0.00
enq: JS - job run lock - synchronize
1
0.00
0
1
0.00
SQL*Net more data to client
16
0.00
0
0
0.00
latch: cache buffers lru chain
1
0.00
0
0
0.00
enq: UL - contention
1
0.00
0
0
0.00
gc current split
1
0.00
0
0
0.00
enq: AF - task serialization
1
0.00
0
0
0.00
latch: object queue header operation
3
0.00
0
0
0.00
latch: cache buffers chains
1
0.00
0
0
0.00
latch: enqueue hash chains
2
0.00
0
0
0.00
SQL*Net message from client
1,544,113
0.00
12,626
8
275.83
gcs remote message
634,884
98.64
9,203
14
113.41
DIAG idle wait
23,628
0.00
4,616
195
4.22
ges remote message
149,591
93.45
4,612
31
26.72
Streams AQ: qmn slave idle wait
167
0.00
4,611
27611
0.03
Streams AQ: qmn coordinator idle wait
351
47.86
4,611
13137
0.06
Streams AQ: waiting for messages in the queue
488
100.00
4,605
9436
0.09
virtual circuit status
157
100.00
4,596
29272
0.03
PX Idle Wait
1,072
97.11
2,581
2407
0.19
jobq slave wait
145
97.93
420
2896
0.03
Streams AQ: waiting for time management or cleanup tasks
1
100.00
270
269747
0.00
PX Deq: Parse Reply
40
40.00
0
3
0.01
PX Deq: Execution Msg
121
26.45
0
0
0.02
PX Deq: Join ACK
38
42.11
0
1
0.01
PX Deq: Execute Reply
34
32.35
0
0
0.01
PX Deq: Msg Fragment
16
0.00
0
0
0.00
Streams AQ: RAC qmn coordinator idle wait
351
100.00
0
0
0.06
class slave wait
2
0.00
0
0
0.00
db file scattered read等待事件是当SESSION等待multi-block I/O时发生的,通过是由于full table scans或 index fast full scans。发生过多读操作的Segments可以在“Segments by Physical Reads”和 “SQL ordered by Reads”节中识别(在其它版本的报告中,可能是别的名称)。如果在OLTP应用中,不应该有过多的全扫描操作,而应使用选择性好的索引操作。
DB file sequential read等待意味着发生顺序I/O读等待(通常是单块读取到连续的内存区域中),如果这个等待非常严重,应该使用上一段的方法确定执行读操作的热点SEGMENT,然后通过对大表进行分区以减少I/O量,或者优化执行计划(通过使用存储大纲或执行数据分析)以避免单块读操作引起的sequential read等待。通过在批量应用中,DB file sequential read是很影响性能的事件,总是应当设法避免。
Log File Parallel Write事件是在等待LGWR进程将REDO记录从LOG 缓冲区写到联机日志文件时发生的。虽然写操作可能是并发的,但LGWR需要等待最后的I/O写到磁盘上才能认为并行写的完成,因此等待时间依赖于OS完成所有请求的时间。如果这个等待比较严重,可以通过将LOG文件移到更快的磁盘上或者条带化磁盘(减少争用)而降低这个等待。
Buffer Busy Waits事件是在一个SESSION需要访问BUFFER CACHE中的一个数据库块而又不能访问时发生的。缓冲区“busy”的两个原因是:1)另一个SESSION正在将数据块读进BUFFER。2)另一个SESSION正在以排它模式占用着这块被请求的BUFFER。可以在“Segments by Buffer Busy Waits”一节中找出发生这种等待的SEGMENT,然后通过使用reverse-key indexes并对热表进行分区而减少这种等待事件。
Log File Sync事件,当用户SESSION执行事务操作(COMMIT或ROLLBACK等)后,会通知 LGWR进程将所需要的所有REDO信息从LOG BUFFER写到LOG文件,在用户SESSION等待LGWR返回安全写入磁盘的通知时发生此等待。减少此等待的方法写Log File Parallel Write事件的处理。
Enqueue Waits是串行访问本地资源的本锁,表明正在等待一个被其它SESSION(一个或多个)以排它模式锁住的资源。减少这种等待的方法依赖于生产等待的锁类型。导致Enqueue等待的主要锁类型有三种:TX(事务锁), TM D(ML锁)和ST(空间管理锁)。
Back to Wait Events Statistics
Back to Top
Background Wait Events
- ordered by wait time desc, waits desc (idle events last)
Event
Waits
%Time -outs
Total Wait Time (s)
Avg wait (ms)
Waits /txn
log file parallel write
5,497
0.00
47
9
0.98
db file parallel write
4,806
0.00
34
7
0.86
events in waitclass Other
69,002
83.25
22
0
12.33
control file sequential read
9,323
0.00
7
1
1.67
control file parallel write
1,946
0.00
3
1
0.35
os thread startup
18
5.56
2
89
0.00
direct path read
138
0.00
0
1
0.02
db file sequential read
21
0.00
0
5
0.00
direct path write
138
0.00
0
0
0.02
log file sequential read
36
0.00
0
2
0.01
gc cr block 2-way
96
0.00
0
0
0.02
gc current block 2-way
78
0.00
0
0
0.01
log buffer space
11
0.00
0
2
0.00
row cache lock
59
0.00
0
0
0.01
log file single write
36
0.00
0
0
0.01
buffer busy waits
151
0.66
0
0
0.03
gc current grant busy
29
0.00
0
0
0.01
library cache lock
4
0.00
0
1
0.00
enq: TM - contention
10
0.00
0
0
0.00
gc current grant 2-way
8
0.00
0
0
0.00
gc cr multi block request
7
0.00
0
0
0.00
gc cr grant 2-way
5
0.00
0
0
0.00
rdbms ipc message
97,288
73.77
50,194
516
17.38
gcs remote message
634,886
98.64
9,203
14
113.41
DIAG idle wait
23,628
0.00
4,616
195
4.22
pmon timer
1,621
100.00
4,615
2847
0.29
ges remote message
149,591
93.45
4,612
31
26.72
Streams AQ: qmn slave idle wait
167
0.00
4,611
27611
0.03
Streams AQ: qmn coordinator idle wait
351
47.86
4,611
13137
0.06
smon timer
277
6.50
4,531
16356
0.05
Streams AQ: waiting for time management or cleanup tasks
1
100.00
270
269747
0.00
PX Deq: Parse Reply
40
40.00
0
3
0.01
PX Deq: Join ACK
38
42.11
0
1
0.01
PX Deq: Execute Reply
34
32.35
0
0
0.01
Streams AQ: RAC qmn coordinator idle wait
351
100.00
0
0
0.06
Back to Wait Events Statistics
Back to Top
Operating System Statistics
Statistic
Total
NUM_LCPUS
0
NUM_VCPUS
0
AVG_BUSY_TIME
101,442
AVG_IDLE_TIME
371,241
AVG_IOWAIT_TIME
5,460
AVG_SYS_TIME
25,795
AVG_USER_TIME
75,510
BUSY_TIME
812,644
IDLE_TIME
2,971,077
IOWAIT_TIME
44,794
SYS_TIME
207,429
USER_TIME
605,215
LOAD
0
OS_CPU_WAIT_TIME
854,100
RSRC_MGR_CPU_WAIT_TIME
0
PHYSICAL_MEMORY_BYTES
8,589,934,592
NUM_CPUS
8
NUM_CPU_CORES
4
NUM_LCPUS:
NUM_VCPUS:
AVG_BUSY_TIME:
AVG_IDLE_TIME:
AVG_IOWAIT_TIME:
AVG_SYS_TIME:
AVG_USER_TIME:
BUSY_TIME:
IDLE_TIME:
IOWAIT_TIME:
SYS_TIME:
USER_TIME:
LOAD:
OS_CPU_WAIT_TIME:
RSRC_MGR_CPU_WAIT_TIME:
PHYSICAL_MEMORY_BYTES:
NUM_CPUS:
NUM_CPU_CORES:
总的elapsed time也可以用以公式计算:
BUSY_TIME + IDLE_TIME + IOWAIT TIME
或:SYS_TIME + USER_TIME + IDLE_TIME + IOWAIT_TIME
Back to Wait Events Statistics
Back to Top
Service Statistics
- ordered by DB Time
Service Name
DB Time (s)
DB CPU (s)
Physical Reads
Logical Reads
ICCI
608.10
496.60
315,849
16,550,972
SYS$USERS
54.70
17.80
6,539
58,929
ICCIXDB
0.00
0.00
0
0
SYS$BACKGROUND
0.00
0.00
282
38,990
Back to Wait Events Statistics
Back to Top
Service Wait Class Stats
- Wait Class info for services in the Service Statistics section.
- Total Waits and Time Waited displayed for the following wait classes: User I/O, Concurrency, Administrative, Network
- Time Waited (Wt Time) in centisecond (100th of a second)
Service Name
User I/O Total Wts
User I/O Wt Time
Concurcy Total Wts
Concurcy Wt Time
Admin Total Wts
Admin Wt Time
Network Total Wts
Network Wt Time
ICCI
59826
8640
4621
338
0
0
1564059
6552
SYS$USERS
6567
3238
231
11
0
0
7323
3
SYS$BACKGROUND
443
115
330
168
0
0
0
0
Back to Wait Events Statistics
Back to Top
SQL Statistics
- SQL ordered by Elapsed Time
- SQL ordered by CPU Time
- SQL ordered by Gets
- SQL ordered by Reads
- SQL ordered by Executions
- SQL ordered by Parse Calls
- SQL ordered by Sharable Memory
- SQL ordered by Version Count
- SQL ordered by Cluster Wait Time
- Complete List of SQL Text
本节按各种资源分别列出对资源消耗最严重的SQL语句,并显示它们所占统计期内全部资源的比例,这给出我们调优指南。例如在一个系统中,CPU资源是系统性能瓶颈所在,那么优化buffer gets最多的SQL语句将获得最大效果。在一个I/O等待是最严重事件的系统中,调优的目标应该是physical IOs最多的SQL语句。
在STATSPACK报告中,没有完整的SQL语句,可使用报告中的Hash Value通过下面语句从数据库中查到:
select sql_text
from stats$sqltext
where hash_value = &hash_value
order by piece;
Back to Top
SQL ordered by Elapsed Time
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
Elapsed Time (s)
CPU Time (s)
Executions
Elap per Exec (s)
% Total DB Time
SQL Id
SQL Module
SQL Text
93
57
1
93.50
14.10
d8z0u8hgj8xdy
cuidmain@HPGICCI1 (TNS V1-V3)
insert into CUID select CUID_...
76
75
172,329
0.00
11.52
4vja2k2gdtyup
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
58
42
1
58.04
8.75
569r5k05drsj7
cumimain@HPGICCI1 (TNS V1-V3)
insert into CUMI select CUSV_...
51
42
1
50.93
7.68
ackxqhnktxnbc
cusmmain@HPGICCI1 (TNS V1-V3)
insert into CUSM select CUSM_...
38
36
166,069
0.00
5.67
7gtztzv329wg0
select c.name, u.name from co...
35
3
1
35.00
5.28
6z06gcfw39pkd
SQL*Plus
SELECT F.TABLESPACE_NAME, TO_...
23
23
172,329
0.00
3.46
1dm3bq36vu3g8
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into iccifnsact values...
15
11
5
2.98
2.25
djs2w2f17nw2z
DECLARE job BINARY_INTEGER := ...
14
14
172,983
0.00
2.16
7wwv1ybs9zguz
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_AD...
13
13
172,337
0.00
2.00
gmn2w09rdxn14
load_oldnewact@HPGICCI1 (TNS V1-V3)
insert into OLDNEWACT values ...
13
13
166,051
0.00
1.89
chjmy0dxf9mbj
icci_migact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
10
4
1
9.70
1.46
0yv9t4qb1zb2b
cuidmain@HPGICCI1 (TNS V1-V3)
select CUID_CUST_NO , CUID_ID_...
10
8
5
1.91
1.44
1crajpb7j5tyz
INSERT INTO STATS$SGA_TARGET_A...
8
8
172,329
0.00
1.25
38apjgr0p55ns
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCICCS set CCSMAXOVER...
8
8
172,983
0.00
1.16
5c4qu2zmj3gux
load_fnsact@HPGICCI1 (TNS V1-V3)
select * from ICCIPRODCODE wh...
Back to SQL Statistics
Back to Top
SQL ordered by CPU Time
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
CPU Time (s)
Elapsed Time (s)
Executions
CPU per Exec (s)
% Total DB Time
SQL Id
SQL Module
SQL Text
75
76
172,329
0.00
11.52
4vja2k2gdtyup
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
57
93
1
57.31
14.10
d8z0u8hgj8xdy
cuidmain@HPGICCI1 (TNS V1-V3)
insert into CUID select CUID_...
42
51
1
42.43
7.68
ackxqhnktxnbc
cusmmain@HPGICCI1 (TNS V1-V3)
insert into CUSM select CUSM_...
42
58
1
42.01
8.75
569r5k05drsj7
cumimain@HPGICCI1 (TNS V1-V3)
insert into CUMI select CUSV_...
36
38
166,069
0.00
5.67
7gtztzv329wg0
select c.name, u.name from co...
23
23
172,329
0.00
3.46
1dm3bq36vu3g8
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into iccifnsact values...
14
14
172,983
0.00
2.16
7wwv1ybs9zguz
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_AD...
13
13
172,337
0.00
2.00
gmn2w09rdxn14
load_oldnewact@HPGICCI1 (TNS V1-V3)
insert into OLDNEWACT values ...
13
13
166,051
0.00
1.89
chjmy0dxf9mbj
icci_migact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
11
15
5
2.23
2.25
djs2w2f17nw2z
DECLARE job BINARY_INTEGER := ...
8
8
172,329
0.00
1.25
38apjgr0p55ns
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCICCS set CCSMAXOVER...
8
10
5
1.60
1.44
1crajpb7j5tyz
INSERT INTO STATS$SGA_TARGET_A...
8
8
172,983
0.00
1.16
5c4qu2zmj3gux
load_fnsact@HPGICCI1 (TNS V1-V3)
select * from ICCIPRODCODE wh...
4
10
1
3.54
1.46
0yv9t4qb1zb2b
cuidmain@HPGICCI1 (TNS V1-V3)
select CUID_CUST_NO , CUID_ID_...
3
35
1
3.13
5.28
6z06gcfw39pkd
SQL*Plus
SELECT F.TABLESPACE_NAME, TO_...
Back to SQL Statistics
Back to Top
SQL ordered by Gets
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- Total Buffer Gets: 16,648,792
- Captured SQL account for 97.9% of Total
Buffer Gets
Executions
Gets per Exec
%Total
CPU Time (s)
Elapsed Time (s)
SQL Id
SQL Module
SQL Text
3,305,363
172,329
19.18
19.85
74.57
76.41
4vja2k2gdtyup
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
2,064,414
1
2,064,414.00
12.40
57.31
93.50
d8z0u8hgj8xdy
cuidmain@HPGICCI1 (TNS V1-V3)
insert into CUID select CUID_...
1,826,869
166,069
11.00
10.97
35.84
37.60
7gtztzv329wg0
select c.name, u.name from co...
1,427,648
172,337
8.28
8.58
12.97
13.29
gmn2w09rdxn14
load_oldnewact@HPGICCI1 (TNS V1-V3)
insert into OLDNEWACT values ...
1,278,667
172,329
7.42
7.68
22.85
22.94
1dm3bq36vu3g8
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into iccifnsact values...
1,216,367
1
1,216,367.00
7.31
42.43
50.93
ackxqhnktxnbc
cusmmain@HPGICCI1 (TNS V1-V3)
insert into CUSM select CUSM_...
1,107,305
1
1,107,305.00
6.65
42.01
58.04
569r5k05drsj7
cumimain@HPGICCI1 (TNS V1-V3)
insert into CUMI select CUSV_...
898,868
172,983
5.20
5.40
14.28
14.34
7wwv1ybs9zguz
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_AD...
711,450
166,051
4.28
4.27
12.52
12.55
chjmy0dxf9mbj
icci_migact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
692,996
172,329
4.02
4.16
8.31
8.31
38apjgr0p55ns
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCICCS set CCSMAXOVER...
666,748
166,052
4.02
4.00
6.36
6.36
7v9dyf5r424yh
icci_migact@HPGICCI1 (TNS V1-V3)
select NEWACTNO into :b0 from...
345,357
172,983
2.00
2.07
7.70
7.71
5c4qu2zmj3gux
load_fnsact@HPGICCI1 (TNS V1-V3)
select * from ICCIPRODCODE wh...
231,756
51,633
4.49
1.39
5.75
5.83
49ms69srnaxzj
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCIRPYV values (...
Back to SQL Statistics
Back to Top
SQL ordered by Reads
- Total Disk Reads: 322,678
- Captured SQL account for 66.1% of Total
Physical Reads
Executions
Reads per Exec
%Total
CPU Time (s)
Elapsed Time (s)
SQL Id
SQL Module
SQL Text
66,286
1
66,286.00
20.54
57.31
93.50
d8z0u8hgj8xdy
cuidmain@HPGICCI1 (TNS V1-V3)
insert into CUID select CUID_...
50,646
1
50,646.00
15.70
3.54
9.70
0yv9t4qb1zb2b
cuidmain@HPGICCI1 (TNS V1-V3)
select CUID_CUST_NO , CUID_ID_...
24,507
1
24,507.00
7.59
42.01
58.04
569r5k05drsj7
cumimain@HPGICCI1 (TNS V1-V3)
insert into CUMI select CUSV_...
21,893
1
21,893.00
6.78
42.43
50.93
ackxqhnktxnbc
cusmmain@HPGICCI1 (TNS V1-V3)
insert into CUSM select CUSM_...
19,761
1
19,761.00
6.12
2.14
6.04
a7nh7j8zmfrzw
cumimain@HPGICCI1 (TNS V1-V3)
select CUSV_CUST_NO from CUMI...
19,554
1
19,554.00
6.06
1.27
3.83
38gak8u2qm11w
SQL*Plus
select count(*) from CUSVAA_T...
6,342
1
6,342.00
1.97
3.13
35.00
6z06gcfw39pkd
SQL*Plus
SELECT F.TABLESPACE_NAME, TO_...
4,385
1
4,385.00
1.36
1.59
2.43
cp5duhcsj72q0
cusmmain@HPGICCI1 (TNS V1-V3)
select CUSM_CUST_ACCT_NO from...
63
5
12.60
0.02
11.17
14.91
djs2w2f17nw2z
DECLARE job BINARY_INTEGER := ...
35
1
35.00
0.01
0.08
0.67
1uk5m5qbzj1vt
SQL*Plus
BEGIN dbms_workload_repository...
Back to SQL Statistics
Back to Top
SQL ordered by Executions
- Total Executions: 1,675,112
- Captured SQL account for 99.8% of Total
Executions
Rows Processed
Rows per Exec
CPU per Exec (s)
Elap per Exec (s)
SQL Id
SQL Module
SQL Text
172,983
172,329
1.00
0.00
0.00
5c4qu2zmj3gux
load_fnsact@HPGICCI1 (TNS V1-V3)
select * from ICCIPRODCODE wh...
172,983
172,329
1.00
0.00
0.00
7wwv1ybs9zguz
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_AD...
172,337
172,337
1.00
0.00
0.00
gmn2w09rdxn14
load_oldnewact@HPGICCI1 (TNS V1-V3)
insert into OLDNEWACT values ...
172,329
172,329
1.00
0.00
0.00
1dm3bq36vu3g8
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into iccifnsact values...
172,329
172,329
1.00
0.00
0.00
38apjgr0p55ns
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCICCS set CCSMAXOVER...
172,329
6,286
0.04
0.00
0.00
4vja2k2gdtyup
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
166,069
166,069
1.00
0.00
0.00
7gtztzv329wg0
select c.name, u.name from co...
166,052
166,052
1.00
0.00
0.00
7v9dyf5r424yh
icci_migact@HPGICCI1 (TNS V1-V3)
select NEWACTNO into :b0 from...
166,051
166,051
1.00
0.00
0.00
chjmy0dxf9mbj
icci_migact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
51,740
51,740
1.00
0.00
0.00
bu8tnqr3xv25q
load_fnsact@HPGICCI1 (TNS V1-V3)
select count(*) into :b0 fro...
51,633
51,633
1.00
0.00
0.00
49ms69srnaxzj
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCIRPYV values (...
Back to SQL Statistics
Back to Top
SQL ordered by Parse Calls
- Total Parse Calls: 182,780
- Captured SQL account for 99.0% of Total
Parse Calls
Executions
% Total Parses
SQL Id
SQL Module
SQL Text
166,069
166,069
90.86
7gtztzv329wg0
select c.name, u.name from co...
6,304
6,304
3.45
2ym6hhaq30r73
select type#, blocks, extents,...
2,437
2,438
1.33
bsa0wjtftg3uw
select file# from file$ where ...
1,568
1,568
0.86
9qgtwh66xg6nz
update seg$ set type#=:4, bloc...
1,554
1,554
0.85
aq4js2gkfjru8
update tsq$ set blocks=:3, max...
444
444
0.24
104pd9mm3fh9p
select blocks, maxblocks, gran...
421
421
0.23
350f5yrnnmshs
lock table sys.mon_mods$ in ex...
421
421
0.23
g00cj285jmgsw
update sys.mon_mods$ set inser...
86
86
0.05
3m8smr0v7v1m6
INSERT INTO sys.wri$_adv_messa...
81
81
0.04
f80h0xb1qvbsk
SELECT sys.wri$_adv_seq_msggro...
Back to SQL Statistics
Back to Top
SQL ordered by Sharable Memory
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Version Count
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Cluster Wait Time
Cluster Wait Time (s)
CWT % of Elapsd Time
Elapsed Time(s)
CPU Time(s)
Executions
SQL Id
SQL Module
SQL Text
10.96
11.72
93.50
57.31
1
d8z0u8hgj8xdy
cuidmain@HPGICCI1 (TNS V1-V3)
insert into CUID select CUID_...
4.21
7.25
58.04
42.01
1
569r5k05drsj7
cumimain@HPGICCI1 (TNS V1-V3)
insert into CUMI select CUSV_...
3.62
7.12
50.93
42.43
1
ackxqhnktxnbc
cusmmain@HPGICCI1 (TNS V1-V3)
insert into CUSM select CUSM_...
2.39
6.35
37.60
35.84
166,069
7gtztzv329wg0
select c.name, u.name from co...
2.38
3.12
76.41
74.57
172,329
4vja2k2gdtyup
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
1.64
16.91
9.70
3.54
1
0yv9t4qb1zb2b
cuidmain@HPGICCI1 (TNS V1-V3)
select CUID_CUST_NO , CUID_ID_...
1.06
3.02
35.00
3.13
1
6z06gcfw39pkd
SQL*Plus
SELECT F.TABLESPACE_NAME, TO_...
0.83
13.76
6.04
2.14
1
a7nh7j8zmfrzw
cumimain@HPGICCI1 (TNS V1-V3)
select CUSV_CUST_NO from CUMI...
0.66
87.90
0.75
0.42
444
104pd9mm3fh9p
select blocks, maxblocks, gran...
0.50
13.01
3.83
1.27
1
38gak8u2qm11w
SQL*Plus
select count(*) from CUSVAA_T...
0.50
51.75
0.96
0.79
1,554
aq4js2gkfjru8
update tsq$ set blocks=:3, max...
0.33
91.11
0.36
0.33
187
04xtrk7uyhknh
select obj#, type#, ctime, mti...
0.33
2.47
13.29
12.97
172,337
gmn2w09rdxn14
load_oldnewact@HPGICCI1 (TNS V1-V3)
insert into OLDNEWACT values ...
0.29
1.26
22.94
22.85
172,329
1dm3bq36vu3g8
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into iccifnsact values...
0.25
10.14
2.43
1.59
1
cp5duhcsj72q0
cusmmain@HPGICCI1 (TNS V1-V3)
select CUSM_CUST_ACCT_NO from...
0.21
27.92
0.74
0.74
1,568
9qgtwh66xg6nz
update seg$ set type#=:4, bloc...
0.20
3.49
5.83
5.75
51,633
49ms69srnaxzj
load_fnsact@HPGICCI1 (TNS V1-V3)
insert into ICCIRPYV values (...
0.17
1.39
12.55
12.52
166,051
chjmy0dxf9mbj
icci_migact@HPGICCI1 (TNS V1-V3)
insert into ICCICCS values (:...
0.16
57.64
0.28
0.24
39
cn1gtsav2d5jh
cusvaamain@HPGICCI1 (TNS V1-V3)
BEGIN BEGIN IF (xdb.DBMS...
0.14
74.58
0.19
0.14
121
5ngzsfstg8tmy
select o.owner#, o.name, o.nam...
0.11
64.72
0.18
0.15
80
78m9ryygp65v5
cusvaamain@HPGICCI1 (TNS V1-V3)
SELECT COUNT(*...
0.11
94.54
0.12
0.01
17
bwt0pmxhv7qk7
delete from con$ where owner#=...
0.11
80.26
0.14
0.14
327
53saa2zkr6wc3
select intcol#, nvl(pos#, 0), ...
0.08
19.20
0.42
0.24
1
d92h3rjp0y217
begin prvt_hdm.auto_execute( :...
0.07
54.97
0.13
0.13
83
7ng34ruy5awxq
select i.obj#, i.ts#, i.file#,...
0.06
5.22
1.13
0.72
77
0hhmdwwgxbw0r
select obj#, type#, flags, ...
0.06
86.50
0.06
0.06
45
a2any035u1qz1
select owner#, name from con$...
0.06
8.19
0.67
0.08
1
1uk5m5qbzj1vt
SQL*Plus
BEGIN dbms_workload_repository...
0.04
75.69
0.06
0.06
87
6769wyy3yf66f
select pos#, intcol#, col#, sp...
0.04
48.05
0.09
0.07
7
0pvtkmrrq8usg
select file#, block# from seg...
0.04
8.84
0.40
0.40
6,304
2ym6hhaq30r73
select type#, blocks, extents,...
0.03
28.15
0.12
0.12
49
b52m6vduutr8j
delete from RecycleBin$ ...
0.03
66.23
0.05
0.05
85
1gu8t96d0bdmu
select t.ts#, t.file#, t.block...
0.03
67.03
0.05
0.05
38
btzq46kta67dz
DBMS_SCHEDULER
update obj$ set obj#=:6, type#...
0.02
66.73
0.04
0.04
86
3m8smr0v7v1m6
INSERT INTO sys.wri$_adv_messa...
0.02
26.94
0.09
0.09
38
0k8h617b8guhf
delete from RecycleBin$ ...
0.02
76.76
0.03
0.03
51
9vtm7gy4fr2ny
select con# from con$ where ow...
0.02
51.91
0.05
0.05
84
83taa7kaw59c1
select name, intcol#, segcol#,...
0.02
0.15
14.91
11.17
5
djs2w2f17nw2z
DECLARE job BINARY_INTEGER := ...
0.02
2.12
1.00
0.99
8,784
501v412s13r4m
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_FA...
0.02
53.82
0.03
0.03
39
bdv0rkkssq2jm
cusvaamain@HPGICCI1 (TNS V1-V3)
SELECT count(*) FROM user_poli...
0.01
0.10
14.34
14.28
172,983
7wwv1ybs9zguz
load_fnsact@HPGICCI1 (TNS V1-V3)
update ICCIFNSACT set BORM_AD...
0.01
8.29
0.16
0.13
421
g00cj285jmgsw
update sys.mon_mods$ set inser...
0.01
1.65
0.56
0.54
2
84qubbrsr0kfn
insert into wrh$_latch (snap...
0.01
22.33
0.04
0.02
26
44au3v5mzpc1c
load_curmmast@HPGICCI1 (TNS V1-V3)
insert into ICCICURMMAST valu...
0.01
0.08
7.71
7.70
172,983
5c4qu2zmj3gux
load_fnsact@HPGICCI1 (TNS V1-V3)
select * from ICCIPRODCODE wh...
Back to SQL Statistics
Back to Top
Complete List of SQL Text
(略)
- Oracle_AWR_报告分析实例讲解
- Oracle_AWR_报告分析实例讲解
- Oracle_AWR_报告分析实例讲解
- Oracle_AWR_报告分析实例讲解
- Oracle_AWR_报告分析实例讲…
- AIDL实例分析和讲解
- 实例讲解木马的分析方法
- 实例讲解木马的分析方法
- 实例讲解木马的分析方法
- 面向对象------实例讲解:类设计分析
- 策略模式(Strategy)实例分析与讲解
- 实例讲解UML建模分析与设计
- Nsd宕机报告分析实例
- [C#] C#事件与接口实例讲解分析
- 实例讲解:使用IBM heapAnalyzer分析heap dump文件步骤
- Java加密算法的实现实例细节分析讲解
- 实例讲解:使用IBM heapAnalyzer分析heap dump文件步骤 .
- 深入php socket的讲解与实例分析
- 数据结构——链式二叉树
- 英特尔重新定义电视 必须跨越哪些障碍?
- javascript中的__proto__和prototype
- C语言指针与数组之间的恩恩怨怨详解
- centos 防火墙
- Oracle_AWR_报告分析实例讲解
- 没有黄光裕的国美,只能价格战
- EXT在前台使用多个store
- VMware Workstation 无法恢复错误: (vmx) Exception 0xc0000006 (disk error while paging) has...
- MD5,SHA加密通用方法
- 学习android内核 -- Context相关
- 二维数组中的查找
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- ubuntu下安装 ZeroMQ, JZMQ