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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- 【等待事件】db file sequential read事件
- db file sequential read等待事件事件
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- [20181130]control file sequential read.txt
- [20181129]大量的control file sequential read.txt
- 【等待事件】db file scattered read事件
- db file scattered read等待事件事件
- 0316理解db file parallel read等待事件Parallel事件
- 0322理解db file parallel read等待事件2Parallel事件
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- [20210315]理解db file parallel read等待事件3.txtParallel事件
- [20210315]理解db file parallel read等待事件4.txtParallel事件
- direct path read/read temp等待事件事件
- read by other session等待事件Session事件
- read by other session 等待事件分析Session事件
- 【等待事件】log file sync事件
- log file sync等待事件事件
- cell single block physical read等待事件BloC事件
- 【TUNE_ORACLE】等待事件之IO等待“read by other session”Oracle事件Session
- 【TUNE_ORACLE】等待事件之IO等待“direct path read”Oracle事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- log file sync等待事件處理思路事件
- 【WAIT】 log file sync等待事件說明AI事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- [20201204]關於等待事件Log File Sync.txt事件
- Oracle:db file scattered readOracle
- read content in a text file in pythonPython
- Solidity事件,等待事件Solid事件
- Bypass McAfee Application Control--Write&Read ProtectionAPP
- 【TUNE_ORACLE】等待事件之等待事件類別Oracle事件
- C# read excel file via ExcelDataReaderC#ExcelLDA
- Selenium等待事件Waits事件AI
- latch等待事件彙總事件
- Latch free等待事件(轉)事件
- gc cr request等待事件GC事件
- 【等待事件】library cache pin事件