一次內鏈子查詢優化 1

gaopengtttt發表於2011-04-29
為了減少I/O

最近進行了一個RAC系統的診斷和SQL調優
系統負載如下:
DB Name DB Id Instance Inst num Release RAC Host
CISLIVE 2822924692 cislive1 1 10.2.0.5.0 YES cisdb01


Snap Id Snap Time Sessions Cursors/Session
Begin Snap: 5890 27-Apr-11 14:00:49 295 2.3
End Snap: 5891 27-Apr-11 14:58:30 298 2.6
Elapsed:   57.68 (mins)     
DB Time:   37.97 (mins)     

負載不是太高,我主要是為了防範未然

Load Profile

Per Second Per Transaction
Redo size: 17,555.69 33,054.70
Logical reads: 135,918.63  255,914.07
Block changes: 87.13  164.05
Physical reads: 62.17  117.05
可以看到邏輯讀叫高,檢視TOP5
Top 5 Timed Events

Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class
CPU time   2,192   96.2   
db file sequential read 6,277 32 5 1.4 User I/O
gc cr multi block request 148,225 19 0 .8 Cluster
db file scattered read 12,595 8 1 .4 User I/O
gc buffer busy 3,385 5 2 .2 Cluster

可以看到視乎有塊在RAC間傳遞,CPU TIME的解釋ORACLE說是CPU耗用在資料庫操作上的時間。
因為我這個系統是偶爾CPU下降到50%,等待時間也是偶爾出現GC CR REQUEST的情況,並沒有
達到不因為高負載當機的地步。只是防範性調優,所以負載不是很高。

分析SQL ORDER BY CPU前2位
53 53 5 10.55 2.41 2.33 ccdfj27szj143    SELECT * FROM ( Select RowNum ...
52 52 5 10.39 2.37 2.26 bh0shnmvqduzu    SELECT COUNT(*) FROM PrpTmain


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-694083/,如需轉載,請註明出處,否則將追究法律責任。

相關文章