可能的原因
control file sequential read
Reading from the control file. This happens in many cases. For example, while:
1、Making a backup of the control files
2、Sharing information (between instances) from the control file
3、Reading other blocks from the control files
4、Reading the header block
Wait Time: The wait time is the elapsed time of the read
Parameter |
Description |
file# |
The control file from which the session is reading |
block# |
Block number in the control file from where the session starts to read. The block size is the physical block size of the port (usually 512 bytes, some UNIX ports have 1 or 2 Kilobytes). |
blocks |
The number of blocks that the session is trying to read |
分析
通過v$session_wait查看當前等待事件發生在哪個文件(p1,即file#)、哪個塊(p2,即block#)、讀多少個塊(p3,即blocks)
v$session_wait_history記錄每類等待事件中最高10項記錄,因此每項最多有10行數據。
當前等待事件中沒有”control file sequential read”該項,從v$session_wait_history中查看最高10項記錄中可以看到,事件中所讀取的數據塊並不集中,而且每次讀取的塊數為1(1是正常的),等待時間為0。這表明數據庫是健康的。
小結
首先,該等待事件並不表明數據庫有問題。一個健康的系統,物理讀事件應是除空閑等待事件外的最大等待事件。而該事件在RAC中尤其明顯,依照經驗來看,在一個正常的RAC集群中,該事件應該排在top10中,因為實例間共享同一份控制文件,對控制文件讀取是很頻繁的,如果被其他等待事件擠出前10了,那就得看看是哪些等待事件了。
其次,可以查看AWR報告該事件的等待次數,平均等待時間,最大等待時間等信息進行進一步確認。看看這些信息比起日常AWR報告信息是否有明顯的異常。