You were brought to this page based on an internet search
and as a free service to Oracle DBAs.
The text below is an except from the book,
Oracle Performance Firefighting, written by
Craig Shallahamer of
OraPub, Inc.
Figures and tables are not included on this page, only their reference.
To order the book in either print or PDF form, click
here.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
-------------------------------
This wait event can be posted because a user is taking a coffee break, resulting in both an idle client and server process. It could also be posted because the user is thinking about what to do next, again causing both the client and server process to be idle. A server process could also be posting this event because a network problem is preventing it from receiving a message the client process has already sent. And finally, the server process could post the event because the Oracle client process is doing some advanced processing that is taking a while to complete. In each of these cases, the SNMFC wait event is posted by the server process. So our challenge is to understand if we care!
When looking at all sessions together as a single unit of work, known as profiling the system, while some SNMFC wait events may be the result of a network or client processing issue, the vast majority of the SNMFC postings will be from both an idle client and server processes patiently waiting for something to do. This is why most wait event reports filter out this wait event. In fact, because most Oracle sessions spend more time waiting than doing work, if the SNMFC wait time were included in the typical wait event report, it would effectively dwarf all the other wait time we dearly care about and desperately need for our analysis.
However, there are times when SNMFC is immensely useful, and every Oracle performance firefighter needs to understand this. Suppose we are watching both the end user and the corresponding server process very closely. So closely, in fact, that we discover that both the user and the Oracle server processes are waiting. The user is waiting for a query to complete, and the Oracle server process is patiently waiting for a message from its client process. This is a strange situation indeed and indicates there is problem between (but not including) the database server process and the end user. If this is confusing, read this again and refer to Figure 5-13.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
|