data file int write和db file sequential read個人想法
Data file init write等待事件主要是用於資料檔案內部擴充套件,增加資料檔案出現的等待事件,該等待事件的三個引數分別是count,intr,timeout,oracle 10g推出的
SQL> alter session set events '10046 trace name context forever,level 8';
Session altered
SQL> alter database datafile 5 resize 100M;
Database altered
SQL> alter session set events '10046 trace name context off';
Session altered
---------
WAIT #2: nam='Data file init write' ela= 15163 count=1 intr=256 timeout=-1 obj#=1 tim=28805256609
WAIT #2: nam='Data file init write' ela= 6606 count=1 intr=256 timeout=-1 obj#=1 tim=28805263320
WAIT #2: nam='Data file init write' ela= 17 count=-1 intr=32 timeout=2147483647 obj#=1 tim=28805263425
WAIT #2: nam=ela= 13871 file#=0 block#=1 blocks=1 obj#=1 tim=28805530331
WAIT #2: nam='control file sequential read' ela= 378 file#=0 block#=18 blocks=1 obj#=1 tim=28805562796
WAIT #2: nam='control file sequential read' ela= 10897 file#=0 block#=276 blocks=1 obj#=1 tim=28805573810
WAIT #2: nam='flashback buf free by RVWR' ela= 731 p1=0 p2=0 p3=0 obj#=1 tim=28805574738
WAIT #2: nam='control file sequential read' ela= 390 file#=0 block#=1 blocks=1 obj#=1 tim=28805575271
WAIT #2: nam= ela= 1360 files=3 block#=275 requests=3 obj#=1 tim=28805579832
WAIT #2: nam='' ela= 19415 file#=5 block#=1 blocks=1 obj#=1 tim=28805606687
WAIT #2: nam='db file single write' ela= 8049 file#=5 block#=1 blocks=1 obj#=1 tim=28805614942
跟蹤檔案中的事件描述中:
Data file init write是資料檔案擴充套件引起
Control file sequential read和control file parallel write是由於對控制檔案讀取和寫入
db file sequential read看來resize datafile也有可能出現順序讀,是對資料檔案5的block 1順序讀,這個順序讀應該是和下面的單塊讀取相關,需要讀取資料檔案頭部。
db file single write 對資料檔案頭的寫入操作,也是對資料檔案5的檔案頭的block 1單塊寫入。
Eygle提高了此時應該有個檔案級別的ckpt,不過在測試中沒有發現,版本是oracle 10.2.0.0。
Db file sequential read等待事件
根據該等待事件的描述,是資料檔案順序讀取的等待事件,該資料檔案的三個引數分別是file#,first block#,block count在oracle 10g中被歸於user I/O wait class,正如應用所說,db file sequential read等待事件出現並不一定是壞事,特別在cbo下很大程度代表了系統高效利用索引,但是也並不一定是效能優越的表現。
最近碰到的一個db file sequential read等待事件在早上7:00-9:00業務高峰期非常頻繁,可以說已經影響到了系統的效能,透過awr報表top event也是由於此等待事件大概佔用95%以上,而且開發反應這段時間資料採集很慢,看來此等待事件已經引起了系統效能的瓶頸,處理此等待事件個人也沒有什麼很好的經驗。
首先想到的肯定是減少邏輯讀(這個也是最應該注意的),如果從buffer獲取索引掃描所需的block,肯定很快,不會引起大幅度的db file sequential read,可能是大量的sql併發導致掃描所需buffer過多,而sga中又無法儲存充足的buffer,進而透過disk來獲取,而disk由於做的raid 5,讀取和寫入有一定的下降,特別是寫入,這也是不推薦將log放置在raid5上面的最重要原因,而避開硬體方面,發現其實邏輯讀方面已經算是很合理了,根據sga_target_advice發現oracle給出的建議是繼續增加sga物理讀將取得進一步顯著的下降,所以個人來看這個系統如果增加少量記憶體sga target,那麼關於db file sequential read所需的block會盡可能多的在buffer上,而disk降低了,很有可能db file sequential read就會有顯著的降低。
再說說關於db file sequential read的物件,當然掃描index或者根據index的rowid來掃描table是最主要的引起等待事件的物件,其實還包括undo和control files 和data file headers中進行single-block read,上面的resize就能發現有些許db file sequential read等待,網上有文章提到了關於減小average_time,其實還是關於增加減少物理讀。
減少db file sequential read等待事件影響的方法是減少AVERAGE_WAIT ,AVERAGE_WAIT是一個session等待single block被從硬碟獲取的平均等待時間
This is the average time a session has to wait for a single block fetch from disk(英文原句).
1 減少邏輯讀,避免使用不合理的索引(cbo下已經很少,hint除外)
2 增加sga減少disk read
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1058104/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決db file sequential read與db file scattered read
- db file sequential read等待事件事件
- 【等待事件】db file sequential read事件
- db file sequential read 詳解
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- db file scattered read與事件db file sequential read相類似(轉)事件
- db file sequential read及優化優化
- db file sequential read事件的發生事件
- 詳解 db file sequential read 等待事件事件
- High Waits on 'Db File Sequential Read'AI
- Waiting Too Frequently for 'db file sequential read'AI
- oracle wait event之db file sequential readOracleAI
- oracle之 db file sequential read等待事件優化思想Oracle事件優化
- 何時會發生db file sequential read等待事件?事件
- db file sequential read wait event等待事件之二AI事件
- db file parallel writeParallel
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- Oracle db file parallel write 和 log file parallel write 等待事件 說明OracleParallel事件
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- nodejs read/write fileNodeJS
- 等待事件--db file sequential reads事件
- control file sequential read等待事件事件
- 【kingsql分享】何時出現生db file sequential read等待事件SQL事件
- Oracle:db file scattered readOracle
- 事件:db file scattered read事件
- 同一個資料塊的db file sequential read,說明了什麼?
- log file sync 和 log file parallel writeParallel
- db file scattered read等待事件事件
- 【等待事件】db file scattered read事件
- oracle等待事件2構造一個DB File Sequential Read等待事件和構造一個Direct Path ReadOracle事件
- [轉載]Oracle等待事件Data file init writeOracle事件
- 消除11.2上的db file parallel readParallel
- 【蓋國強】Oracle Wait Event:Data file init writeOracleAI
- Pure_C_Read and Write PPM、PGM、PBM Three Image File FormatsORM
- 0322理解db file parallel read等待事件2Parallel事件
- 0316理解db file parallel read等待事件Parallel事件
- 非空閒的等待事件-db file scattered read事件
- DB_FILE_MULTIBLOCK_READ_COUNT的設定BloC