Oracle_AWR報告分析指南(經典版)
因為AWR報告非常長,不可能從頭到尾一字不漏的去看,要有選擇的去看重點部分。最好能對照的來讀,即和系統正常情況下的AWR報告對比,找差異。以下就是對分析AWR報告的方法進行了介紹,需要的朋友參考下
AWR的資料主要有兩部分組成:
1)儲存在記憶體中的系統負載和效能統計資料,主要透過v$檢視查詢 ;
2)mmon程式定期以快照(snapshot)的方式將記憶體中的AWR資料儲存到SYSAUX表空間中,主要透過DBA_*檢視訪問。
1. AWR快照的生成
預設情況下,每隔一小時自動產生一個快照,儲存最近7天的資訊,可以透過以下語句查詢:
SQL>select SNAP_INTERVAL,RETENTION from dba_hist_wr_control;
SNAP_INTERVAL RETENTION
----------------------------------------------------------
+00000 01:00:00.0 +00007 00:00:00.0
可以透過以下語句修改時間間隔和儲存時間(以分鐘為單位):
exec dbms_workload_repository.modify_snapshot_settings(interval => 30, retention = > 10*24*60);
也可以根據需要隨時手動生成快照:
exec dbms_workload_repository.create_snapshot;
2. AWR報告的生成
以sysdba執行如下命令:
@?/rdbms/admin/awrrpt.sql
3. AWR報告的分析
策略
因為AWR報告非常長,不可能從頭到尾一字不漏的去看,要有選擇的去看重點部分。最好能對照的來讀,即和系統正常情況下的AWR報告對比,找差異。
AWR報告採用總分的形式,前面是系統的整體情況,後面是各個部分細節,一開始不要陷入細節,先分析系統的整體狀況,對於後面的專題分析,要根據關注點的不同,採取跳躍式分析。
還要根據具體業務的不同,決定某種現象是否正常。
系統整體狀況方面
1)Load Profile:分析系
瞭解系統整體負載狀況,如每秒中的事務數/語句數,每秒/每事務物理讀寫次數(Physical Reads/Writes), 邏輯讀寫次數(Logical Reads/Writes),SQL語句的解析(Parse),特別是硬解析次數等。
2)Instance Efficiency Percentages:各指標都應接近100%,除了:execute to parse (70%以上)和parse cpu to parse elapsed。如果不符合,基本可以確定系統存在效能問題;但是如果反過來,即都符合,也不能說明系統完全正常,還要看實際情況。
具體狀況方面
1)Top 5
Timed Events:這裡列出消耗時間最多的5個等待事件,每種等待說明,都表示一種原因,如:db file sequential
read表示按索引訪問出現等待,db file scattered reade表示全表掃描訪問出現等待事件。
2)Top N SQL:根據時間消耗,記憶體消耗,物理I/O等排序,對相關SQL分析執行計劃
3)如果是RAC環境,需要特別關注RAC Statistic中的相關指標
4)SGA PGA分析
5)分析表空間、資料檔案I/O
WORKLOAD REPOSITORY report for Oracle
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)。說明系統壓力非常小。
可是對於批次系統,資料庫的工作負載總是集中在一段時間內。如果快照週期不在這一段時間內,或者快照週期跨度太長而包含了大量的資料庫空閒時間,所得出的分析結果是沒有意義的。這也說明選擇分析時間段很關鍵,要選擇能夠代表效能問題的時間段。
指標公式:
每個CPU耗時:=DB Time / 邏輯cpu個數=11.05/8=1.4
CPU利用率:DB Time / (邏輯cpu個數*Elapsed)=11.05/(8*78.19) *100%=2%
DB time
DB time=cpu time+wait time
註解:cpu time+wait time(都是指非後臺程式),換句話說,db time就是前端使用者程式所花費
Report Summary
1.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。
指標公式:
shared pool=library cache+dictionary cache
2.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 reads / Logical reads=68.26/3,521.77=1.9%的邏輯讀導致了物理I/O,平均每個事物產生2,974.06(blocks),這個數字應該越小越好。 Read的單位是block .
Physical writes:每秒/每事務物理寫的塊數
User calls:每秒/每事務使用者call次數
Parses:SQL解析的次數
Hard parses:其中硬解析的次數,硬解析太多,說明SQL重用率不高。
Sorts:每秒/每事務的排序次數
Logons:每秒/每事務登入的次數
Executes:每秒/每事務SQL執行次數
Transactions:每秒事務數
Blocks changed per Read:
表示邏輯讀用於修改資料塊的比例,此資料高,表明DML更新操作的塊佔整個被操作的(邏輯讀)的塊的比例高。
Recursive Call:
遞迴呼叫佔所有操作的比率,表明透過pl/sql來執行的
Rollback per transaction:
每事務的回滾率,例子中85.49值已經非常高,(表示每個事物產生0.85個回滾),系統存在回滾方面的問題,因為回滾的代價非常昂貴,即平均每1.17(1/0.85)個事務就要產生一次回滾 。 結合前面的transactions 每秒為 1.18個,即每秒會有1.18/1.17 = 1 次回滾。 應該仔細檢查系統為何產生如此高的回滾率。
公式:每秒回滾次數=transactions per sencend/(1/Rollback per transaction)=transactions per sencend*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的執行來說是開銷昂貴的動作,所以,應當極力避免硬解析,儘量使用軟解析。
3.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表示在記憶體獲得資料的未等待比例。 期望值是100%
buffer hit表示程式從記憶體中找到資料塊的比率,監視這個值是否發生重大變化比這個值本身更重要。對於一般的OLTP系統,如果此值低於80%,應該給資料庫分配更多的記憶體。期望值是100%
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在共享區的命中率,太低則需要調整應用使用繫結變數。
4.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消耗記憶體的佔比。
5.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一節。
CPU time : CPU time其實不是真正的等待事件。是衡量CPU是否瓶頸的一個重要指標,
Elapsed Time = CPU Time + Wait Time 。 一般來講,一個良好的系統,CPU TIME 應該排在TOP 5 TIME Event的最前面,否則,就要進行調整以減少其他的WAIT TIME。 當然這也是相對的, 如果不存在顯著的 latch wait 或過高的logical read 等, CPU time 佔的比例高才是令人放心的。 也就是說CPU在高效率幹活是好事,但是是否因為低效的設定或SQL而消耗CPU時間就需要注意了。
db file sequential read 與 db file scattered read.
這兩個事件是出現比較頻繁的事件。 他們表明Oracle核心請求從磁碟讀取資料塊 (到buffer cache中), 他們的區別就是
sequential 是單塊讀(序列讀),而scattered 表示多塊讀。(和是否全表掃描無關, 只是全表掃描一般表現為多塊讀) 。 這兩個事件描述的是如何將資料塊儲存到記憶體中的, 而不是如何從磁碟進行讀取。
db file scattered read
一次獲取的block被分散在buffer的不連續空間中,通常表示全表掃描過多,可檢查應用程式是否合理的使用了索引,資料庫是否合理的建立了索引 。 db file scattered read是用來表示順序讀取(例如,全表掃描)。
file sequential read
通常暗示著透過索引獲取資料量比較大(比如透過索引進行範圍掃描獲取表資料百分比過大或者錯誤的使用索引),多表連線的時候連線順序不當,hash join時hash_area_size無法容納hash table 等。db file sequential read是用來表示隨機讀取(例如,索引掃描)。
深入解析db file sequential read 及 db file scattered read :
定義
事件名db file sequential read與db file scattered read描述的是如何將資料塊儲存到記憶體中的,而不是如何從磁碟進行讀取. 如果填充磁碟讀取的內容的記憶體是連續的, 發生的磁碟讀就是db file sequential read , 當填充從磁碟讀取的資料的記憶體的連續性無法被保證的時候,發生的磁碟讀就是db file scattered read.
db file sequential read
Oracle 為所有的單塊讀取生成db file sequential read事件(既然是單個,當然是連續的,你可以發現db file sequential read 等待事件的P3引數一般都是1). Oracle始終將單個資料塊儲存在單個快取塊(cache buffer)中, 因此單塊讀取永遠不會產生db file scattered read事件. 對於索引塊,如果不是快速全索引掃描,一般都是一個一個塊讀取的,所以說,這個等待事件很多時候都是索引讀取引起的。
這一事件通常顯示與單個資料塊相關的讀取操作(如索引讀取)。如果這個等待事件比較顯著,可能表示在多表連線中,表的連線順序存在問題,可能沒有正確的使用驅動表; 或者可能說明不加選擇地進行索引。 在大多數情況下我們說,透過索引可以更為快速的獲取記錄,所以對於一個編碼規範、調整良好的資料庫,這個等待很大是很正常的。但是在很多情況下,使用索引並不是最佳的選擇,比如讀取較大表中大量的資料,全表掃描可能會明顯快於索引掃描,所以在開發中我們就應該注意,對於這樣的查詢應該進行避免使用索引掃描。
db file scattered read
db file scattered read 一般都是等待同時讀取多個塊到記憶體中。為了效能和更有效的記憶體空間利用,oracle一般會把這些塊分散在記憶體中。db file scattered read 等待事件的P3引數指出了每次I/O讀取的塊數。每次I/O讀取多少個塊, 由引數db_file_multiblock_read_count控制。 全表掃描或者快速全索引掃描時一般使用的這種讀取塊的方式,所以,該等待很多時候都是因為全表掃描引起的 ;在大部分情況下, 全表掃描與快速全索引掃描都會產生一次或多次db file scattered read. 不過, 有時 , 這些掃描只會產生db file sequential read.
因為全表掃描被置於LRU(Least Recently Used,最近最少使用)列表的冷端(cold end),對於頻繁訪問的較小的資料表,可以選擇把他們Cache到記憶體中,以避免反覆讀取。當這個等待事件比較顯著時,可以結合v$session_longops 以及動態效能檢視來進行診斷,該檢視中記錄了長時間(執行時間超過6秒的)執行的事物,可能很多是全表掃描操作(不管怎樣,這部分資訊都是值得我們注意的)。
latch free
latch是一種輕量級的鎖。一般來說,latch由三種記憶體元素組成:pid(程式id),記憶體地址和記憶體長度。Latch保證對共享資料結構的排它性訪問,以此來保證記憶體結構的完整性不受到損壞。在多個會話同時修改或者檢視(inspect)sga中同一個記憶體結構時,必須序列化訪問以保證sga中資料結構的完整性。
Latch只是用來保護sga中的記憶體結構。對資料庫中的物件的保護,使用的lock而不是latch。Oracle sga中有許多latch,用來保護sga中各種記憶體結構不會因為併發訪問而損壞。常見的Latch Free等待事件是由於熱塊 (buffer cache中的latch爭用) 及未使用繫結變數(shared pool中的latch爭用) 導致的。
最常見的Latch集中於Buffer Cache的競爭和Shared Pool的競爭。和Buffer Cache相關的主要Latch競爭有cache buffers chains和cache buffers lru chain,和Shared Pool相關的主要Latch競爭有Shared Pool Latch和Library Cache Latch等。 Buffer Cache的Latch競爭經常是由於熱點塊競爭或低效的SQL語句引起; Shared Pool的Latch競爭通常是由於SQL的硬解析引起。過大的共享池可能導致shared pool latch 爭用(9i之前的版本);
當latch在系統範圍內的等待時間比較顯著時,你可以透過v$latch中的sleeps列來發現爭用顯著的latch:
Select name, gets, misses, immediate_gets, immediate_misses, sleeps from v$latch order by sleeps desc ;
buffer busy waits
發生條件:
block正被讀入緩衝區或者已經在緩衝區正被其他session修改, 一個會話嘗試去pin 住它,這時當前block已經被pin住,就發生了競爭,產生一個buffer busy waits, 該值不應該大於1% 。可以檢視v$waitstat 看到大概的buffer busy waits 分佈 。
解決辦法:出現此情況通常可能透過幾種方式調整: 增大data buffer, 增加freelist,減小pctused, 增加回滾段數目,增大initrans, 考慮使用LMT+ASSM, 確認是不是由於熱點塊造成(如果是可以用反轉索引,或者用更小塊大小) .
該等待事件表示正在等待一個以非共享方式使用的緩衝區,或者表示當前正在被讀入buffer cache。一般來說Buffer Busy Wait不應大於1%。 檢查緩衝等待統計部分(如下)Segments By Buffer Busy Waits (或V$WAITSTAT),看一下等待是否位於段頭(Segment Header)。 如果是,可以考慮增加自由列表(freelist,對於Oracle8i DMT)或者增加freelist groups(在很多時候這個調整是立竿見影的, 在8.1.6及以後版本,動態修改feelists需要設定COMPATIBLE至少為8.1.6), Oracle9i或以後可以使用ASSM .
alter table xxx storage(freelists n);
6.RAC Statistics
|
Begin |
End |
Number of Instances: |
2 |
2 |
7.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 |
|
8.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 |
9.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 |
10.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: 如果顯示0,是因為沒有設定LPARS
NUM_VCPUS: 同上。
AVG_BUSY_TIME: BUSY_TIME / NUM_CPUS
AVG_IDLE_TIME: IDLE_TIME / NUM_CPUS
AVG_IOWAIT_TIME: IOWAIT_TIME / NUM_CPUS
AVG_SYS_TIME: SYS_TIME / NUM_CPUS
AVG_USER_TIME: USER_TIME / NUM_CPUSar o
BUSY_TIME: time equiv of %usr+%sys in sar output
IDLE_TIME: time equiv of %idle in sar
IOWAIT_TIME: time equiv of %wio in sar
SYS_TIME: time equiv of %sys in sar
USER_TIME: time equiv of %usr in sar
LOAD: 未知
OS_CPU_WAIT_TIME: supposedly time waiting on run queues
RSRC_MGR_CPU_WAIT_TIME: time waited coz of resource manager
PHYSICAL_MEMORY_BYTES: total memory in use supposedly
NUM_CPUS: number of CPUs reported by OS
NUM_CPU_CORES: number of CPU sockets on motherboard
總的elapsed time也可以用以公式計算:
BUSY_TIME + IDLE_TIME + IOWAIT TIME
或:SYS_TIME + USER_TIME + IDLE_TIME + IOWAIT_TIME
(因為BUSY_TIME = SYS_TIME+USER_TIME)
%User = USER_TIME/(BUSY_TIME+IDLE_TIME)*100 |
%Sys = SYS_TIME/(BUSY_TIME+IDLE_TIME)*100 |
%Idle = IDLE_TIME/(BUSY_TIME+IDLE_TIME)*100 |
ELAPSED_TIME=(BUSY_TIME+IDLE_TIME)/cpu count/100 |
Total DB CPU = DB CPU + background cpu time |
% Total CPU= (DB CPU + background cpu time)/(BUSY_TIME+IDLE_TIME)/cpu count/100 |
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): SQL語句執行用總時長,此排序就是按照這個欄位進行的。注意該時間不是單個SQL跑的時間,而是監控範圍內SQL執行次數的總和時間。單位時間為秒。ElapsedTime= CPUTime+Wait Time
-
CPU Time(s): 為SQL語句執行時CPU佔用時間總時長,此時間會小於等於Elapsed Time時間。單位時間為秒。
-
Executions: SQL語句在監控範圍內的執行次數總計。
-
Elap per Exec(s):執行一次SQL的平均時間。單位時間為秒。
-
% Total DB Time: 為SQL的Elapsed Time時間佔資料庫總時間的百分比。
-
SQL ID:SQL語句的ID編號,點選之後就能導航到下邊的SQL詳細列表中,點選IE的返回可以回到當前SQL ID的地方。
-
SQL Module: 顯示該SQL是用什麼方式連線到資料庫執行的,如果是用SQL*Plus或者PL/SQL連結上來的那基本上都是有人在除錯程式。一般用前臺應用連結過來執行的sql該位置為空。
-
SQL Text:簡單的sql提示,詳細的需要點選SQL ID。
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1444315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的AWR報告分析(經典串聯版)Oracle
- 6個經典的JavaScript報錯分析JavaScript
- Maven經典使用指南Maven
- MySQL經典案例分析MySql
- Oracle的AWR報告分析(簡潔版)Oracle
- 經典掃雷遊戲Web版遊戲Web
- awr-----一份經典的負載很高的awr報告負載
- 天下無賊經典臺詞IT版
- R語言經典統計分析R語言
- statspack 報告分析
- 非官方版豆瓣電影視覺化分析報告視覺化
- PHBS:2024年第三季度粵港澳大灣區經濟分析報告分析報告
- 【超級經典】程式設計師裝B指南程式設計師
- 經典資料分析應用介紹
- Java 經典演算法分析總彙Java演算法
- TruSSH Worm分析報告Worm
- ADDM報告分析
- AWR解析報告分析
- 經典排序演算法 — C# 版(上)排序演算法C#
- C語言入門經典(第5版)C語言
- jmeter學習指南之聚合報告JMeter
- 可持續發展報告指南
- JAVA中常見的經典報錯型別Java型別
- 企業版個性化搜尋引擎產品分析報告
- 【C++】 55_經典問題分析 四C++
- 《暗黑2》經典數值公式分析總結公式
- 演算法競賽入門經典訓練指南 pdf演算法
- WindowsXP作業系統防火牆經典使用指南(轉)Windows作業系統防火牆
- 程式語言入門經典案例【Python版】Python
- HBS:實時分析報告
- Sodinoki樣本分析報告
- Kong mesh深度分析報告
- python分析文字報告Python
- 原神深度分析報告(上)
- 手工生成AWR分析報告
- statspack報告分析摘錄
- Statspack分析報告說明
- oracle AWR報告提取分析Oracle