可能的原因
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)、哪个块(p2)、读多少个块(p3)
v$session_wait_history记录每类等待事件中最高10项记录,因此每项最多有10行数据。
当前等待事件中没有”control file sequential read”该项,从v$session_wait中查看最高10项记录中可以看到,事件中所读取的数据块并不集中,而且每次读取的块数为1(1是正常的),等待时间为0。这表明数据库是健康的。
小结
首先,该等待事件并不表明数据库有问题。一个健康的系统,物理读事件应是除空闲等待事件外的最大等待事件。而该事件在RAC中尤其明显,依照经验来看,在一个正常的RAC集群中,该事件应该排在top10中,因为实例间共享同一份控制文件,对控制文件读取是很频繁的,如果被其他等待事件挤出前10了,那就得看看是哪些等待事件了。
其次,可以查看AWR报告该事件的等待次数,平均等待时间,最大等待时间等信息进行进一步确认。看看这些信息比起日常AWR报告信息是否有明显的异常。