control file sequential read等待事件
2015.06.03
在看AWR時,經常看到control file sequential read等待事件,這些天也經常收集學習等待事件,剛剛在生產庫中做了一個我認為空閒時段的報告,可還是有control file sequential read等待事件,所以不得不承認系統磁碟的I/O瓶頸嚴重。
當資料庫需要讀取控制檔案上的資訊時到I/O等待,會出現這個等待事件,因為控制檔案的資訊是順序寫的,所以讀取的時候也是順序的,因此稱為控制檔案順序讀,它經常發生在以下情況。
(1)備份控制檔案。
(2)RAC環境下不同例項之間控制檔案的資訊共享。
(3)讀取控制檔案的檔案BLOCK頭部資訊。
(4)讀取控制檔案的其他資訊。
在看AWR時,經常看到control file sequential read等待事件,這些天也經常收集學習等待事件,剛剛在生產庫中做了一個我認為空閒時段的報告,可還是有control file sequential read等待事件,所以不得不承認系統磁碟的I/O瓶頸嚴重。
當資料庫需要讀取控制檔案上的資訊時到I/O等待,會出現這個等待事件,因為控制檔案的資訊是順序寫的,所以讀取的時候也是順序的,因此稱為控制檔案順序讀,它經常發生在以下情況。
(1)備份控制檔案。
(2)RAC環境下不同例項之間控制檔案的資訊共享。
(3)讀取控制檔案的檔案BLOCK頭部資訊。
(4)讀取控制檔案的其他資訊。
等待的時間就是消耗在讀取控制檔案上的時間。
在V$SESSION_WAIT這個檢視裡面,這個等待事件有三個引數P1、P2、P3,其中P1代表正在讀取的控制檔案號,
select event,p1,p2,p3 from v$session_wait where event like '%control%';
透過下面的SQL語句可以知道究竟是具體是哪個控制文被讀取:
SELECT * FROM X$KCCCF WHERE INDX = <file#>;
P2代表開始讀取的控制檔案BLOCK號,它的BLOCK大小和作業系統的BLOCK大小一樣,通常來說是512K,也有些UNIX的是1M或者2M,P3代表會話要讀取BLOCK的數量。
一般來說使用引數P1、P2來查詢BLOCK,當然也可以包括引數P3,但是那樣最終就變成了一個多BLOCK讀取,因此我們一般都忽略引數P3。
如果這個等待事件等待的時間比較長,則需要檢查控制檔案所在的磁碟是否很繁忙,如果是,將控制檔案移動到負載比較低,速度比較快的磁碟上去。如果系統支援非同步I/O,
則啟用非同步I/O。對於並行伺服器來說,如果這種等待比較多,會造成整個資料庫效能下降,因為並行伺服器之間的一些同步是透過控制檔案來實現的。
總結相關的解決辦法:
1、將控制檔案移動到負載比較低,速度比較快的磁碟上去。
2、適當減少控制檔案的數量,但是要保證控制檔案的冗餘符合你的需求
在V$SESSION_WAIT這個檢視裡面,這個等待事件有三個引數P1、P2、P3,其中P1代表正在讀取的控制檔案號,
select event,p1,p2,p3 from v$session_wait where event like '%control%';
透過下面的SQL語句可以知道究竟是具體是哪個控制文被讀取:
SELECT * FROM X$KCCCF WHERE INDX = <file#>;
P2代表開始讀取的控制檔案BLOCK號,它的BLOCK大小和作業系統的BLOCK大小一樣,通常來說是512K,也有些UNIX的是1M或者2M,P3代表會話要讀取BLOCK的數量。
一般來說使用引數P1、P2來查詢BLOCK,當然也可以包括引數P3,但是那樣最終就變成了一個多BLOCK讀取,因此我們一般都忽略引數P3。
如果這個等待事件等待的時間比較長,則需要檢查控制檔案所在的磁碟是否很繁忙,如果是,將控制檔案移動到負載比較低,速度比較快的磁碟上去。如果系統支援非同步I/O,
則啟用非同步I/O。對於並行伺服器來說,如果這種等待比較多,會造成整個資料庫效能下降,因為並行伺服器之間的一些同步是透過控制檔案來實現的。
總結相關的解決辦法:
1、將控制檔案移動到負載比較低,速度比較快的磁碟上去。
2、適當減少控制檔案的數量,但是要保證控制檔案的冗餘符合你的需求
3、系統支援非同步I/O,則啟用非同步I/O。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30936525/viewspace-2016592/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db file sequential read等待事件事件
- 【等待事件】db file sequential read事件
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- 詳解 db file sequential read 等待事件事件
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- oracle之 db file sequential read等待事件優化思想Oracle事件優化
- 何時會發生db file sequential read等待事件?事件
- db file sequential read wait event等待事件之二AI事件
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- 等待事件--db file sequential reads事件
- oracle等待事件2構造一個DB File Sequential Read等待事件和構造一個Direct Path ReadOracle事件
- 【kingsql分享】何時出現生db file sequential read等待事件SQL事件
- db file sequential read事件的發生事件
- db file scattered read等待事件事件
- 【等待事件】db file scattered read事件
- db file scattered read與事件db file sequential read相類似(轉)事件
- control file parallel write等待事件Parallel事件
- db file sequential read 詳解
- 解決db file sequential read與db file scattered read
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- db file sequential read及優化優化
- 0322理解db file parallel read等待事件2Parallel事件
- 0316理解db file parallel read等待事件Parallel事件
- 非空閒的等待事件-db file scattered read事件
- High Waits on 'Db File Sequential Read'AI
- data file int write和db file sequential read個人想法
- 非空閒等待事件之:db file scattered read(轉)事件
- Waiting Too Frequently for 'db file sequential read'AI
- oracle wait event之db file sequential readOracleAI
- direct path read/read temp等待事件事件
- read by other session等待事件Session事件
- 等待事件:read by other session事件Session
- 【等待事件】read by other session事件Session
- log file sync等待事件事件
- 【等待事件】log file sync事件
- LOG FILE SWITCH等待事件事件
- log file sync" 等待事件事件
- 事件:db file scattered read事件