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
待续