null event不是空事件,不是没有等待事件,而是Oracle忘记了刚才等待的事件的名字是什么了,但保留了该事件的真实情况。Oracle 的开发人员直到9.2.0.3才更新了这些事件名称。
那是不是我们每当碰到性能问题的时候都要patch到9.2.0.3呢?
我们已经知道他的真实情况依然在v$session_wait的P1、P2、P3参数里体现,所以,我们可以从这些参数顺藤摸瓜,找出这个null event 到底是什么等待事件。
下面是ITPUB上COPY过来的一些信息:
1. LCK processes to pick up extra or missed 'posts' (messages).
In all cases that can be identified the wait time is zero,
although on most ports this is changed to 1/100th second in
order to force the process to be rescheduled.
2. Multiple DB writers.
Two cases:
- When the master has sent i/o requests to the slaves, it
waits on this event for up to 6 seconds until the slaves
signal that the i/o is complete.
- The slaves wait on this event for up to 3 seconds whilst
waiting for requests from the master db writer.
目前已经被证实的会涉及到null event 的等待事件还有有SQL*Net message to client、 db file scattered (or sequential) read
待续