Montag, 22. Juni 2020

IDLE wait events can indicate work done

Oracle wait events are categorized into different wait classes. One of these classes is called Idle
As far as I know, wait events were defined by oracle kernel developers. 
From their perspective, this class makes sense: There is no work to be done by this specific session / process, so the session indicates it's waiting for new requests. 

This classification does not help when application performance or user experience is the focus. 

Even when the server process is idle - e.g. in event SQL*Net message from client, the application might do some work. 

Of course, from the server process perspective it can not be decided if somewhere some work is done, or all involved processes are idle and the user falled asleep.
A slightly differenciation could be done: from server process, there is a difference if for any open cursor (statement) more data can be provided, or there is nothing the server process can deliver to the client. Unfortunately this is not indicated in the event. 

From application perspective, idle events are misleading. That's why I prefer to call them timed events. 
This naming is not invented by me, I got some great help: 
 


Keine Kommentare: