buffer busy waits
The buffer busy waits event occurs 
when a session wants to access a data block in the buffer cache that is 
currently in use by some other session. The other session is either reading the 
same data block into the buffer cache from the datafile, or it is modifying the 
one in the buffer cache.
On Oracle 9, the main reasons for buffer busy waits are
- 1) IO read contention (only Oracle 9i and below)
 - 2) Insert Block Contention on Tables or Indexes
 - 3) Rollback Segment Contention
 
control file parallel write
The control file parallel write event 
occurs when the session waits for the completion of the write requests to all of 
the control files. The server process issues these write requests in parallel. 
Starting with Oracle 8.0.5, the CKPT process writes the checkpoint position in 
the online redo logs to the control files every three seconds. Oracle uses this 
information during database recovery operation. Also, when you perform DML 
operations using either the NOLOGGING or UNRECOVERABLE option, Oracle records 
the unrecoverable SCN in the control files. The Recovery Manager (RMAN) records 
backup and recovery information in control files.
db file parallel read
Contrary to what the name suggests, the db 
file parallel read event is not related to any parallel operation—neither 
parallel DML nor parallel query. This event occurs during the database recovery 
operation when database blocks that need changes as a part of recovery are read 
in parallel from the datafiles. This event also occurs when a process reads 
multiple noncontiguous single blocks from one or more datafiles.
db file parallel write
Contrary to what the name suggests, the db 
file parallel write event is not related to any parallel DML operation. This 
event belongs to the DBWR process, as it is the only process that writes the 
dirty blocks to the datafiles. The blocker is the operating system I/O 
subsystem. This can also have an impact on the I/O subsystem in that the writes 
may impact read times of sessions reading from the same disks.
db file scattered read
The db file scattered read event is 
posted by the session when it issues an I/O request to read multiple data 
blocks. The blocks read from the datafiles are scattered into the buffer cache. 
These blocks need not remain contiguous in the buffer cache. The event typically 
occurs during full table scans or index fast full scans. The initialization 
parameter, DB_FILE_MULTIBLOCK_READ_COUNT determines the maximum number of data 
blocks to read.
db file sequential read
The db file sequential read wait event 
occurs when the process waits for an I/O completion for a sequential read. The 
name is a bit misleading, suggesting a multiblock operation, but this is a 
single block read operation. The event gets posted when reading from an index, 
rollback or undo segments, table access by rowid, rebuilding control files, 
dumping datafile headers, or the datafile headers.
db file single write
The db file single write event is 
posted by DBWR. It occurs when Oracle is updating datafile headers, typically 
during a checkpoint. You may notice this event when your database has an 
inordinate number of database files.
direct path read
The direct path read event occurs when 
Oracle is reading data blocks directly into the session’s PGA instead of the 
buffer cache in the SGA. Direct reads may be performed in synchronous I/O or 
asynchronous I/O mode, depending on the hardware platform and the value of the 
initialization parameter, DISK_ASYNCH_IO. Direct read I/O is normally used while 
accessing the temporary segments that reside on the disks. These operations 
include sorts, parallel queries, and hash joins.
direct path write
The direct path write wait event is 
just an opposite operation to that of direct path read. 
Oracle writes buffers from the session’s PGA to the datafiles. A session can 
issue multiple write requests and continue processing. The OS handles the I/O 
operation. If the session needs to know if the I/O operation was completed, it 
will wait on direct path write event.
enqueue
An enqueue is a shared memory structure used by Oracle to 
serialize access to the database resources. The process must acquire the enqueue 
lock on the resource to access it. The process will wait on this event if the 
request to acquire the enqueue is not successful because some other session is 
holding a lock on the resource in an incompatible mode. The processes wait in 
queue for their turn to acquire the requested enqueue. A simple example of such 
an enqueue wait is a session waiting to update a row when some other session has 
updated the row and not yet committed (or rolled back) its transaction and has a 
lock on it in an exclusive mode.
free buffer waits
The free buffer waits event occurs 
when the session cannot find free buffers in the database buffer cache to read 
in data blocks or to build a consistent read (CR) image of a data block. This 
could mean either the database buffer cache is too small, or the dirty blocks in 
the buffer cache are not getting written to the disk fast enough. The process 
will signal DBWR to free up dirty buffers but will wait on this event.
latch free
The latch free wait occurs when the 
process waits to acquire a latch that is currently held by other process. Like 
enqueue, Oracle uses latches to protect data structures. One process at a time 
can either modify or inspect the data structure after acquiring the latch. Other 
processes needing access to the data structure must wait till they acquire the 
latch. Unlike enqueue, processes requesting latch do not have to wait in a 
queue. If the request to acquire a latch fails, the process simply waits for a 
short time and requests the latch again. The short wait time is called “spin”. 
If the latch is not acquired after one or more spin iterations, the process 
sleeps for a short time and tries to acquire the latch again, sleeping for 
successively longer periods until the latch is obtained. 
library cache pin
The library cache pin wait event is 
associated with library cache concurrency. It occurs when the session tries to 
pin an object in the library cache to modify or examine it. The session must 
acquire a pin to make sure that the object is not updated by other sessions at 
the same time. Oracle posts this event when sessions are compiling or parsing 
PL/SQL procedures and views. 
library cache lock
The library cache lock event is also 
associated with library cache concurrency. A session must acquire a library 
cache lock on an object handle to prevent other sessions from accessing it at 
the same time, or to maintain a dependency for a long time, or to locate an 
object in the library cache.
log buffer space
The log buffer space wait occurs when 
the session has to wait for space to become available in the log buffer to write 
new information. The LGWR process periodically writes to redo log files from the 
log buffer and makes those log buffers available for reuse. This wait indicates 
that the application is generating redo information faster than LGWR process can 
write it to the redo files. Either the log buffer is too small, or redo log 
files are on disks with I/O contention.
log file parallel write
The log file parallel write wait 
occurs when the session waits for LGWR process to write redo from log buffer to 
all the log members of the redo log group. This event is typically posted by 
LGWR process. The LGWR process writes to the active log file members in parallel 
only if the asynchronous I/O is in use. Otherwise, it writes to each active log 
file member sequentially.
log file sequential read
The log file sequential read wait 
occurs when the process waits for blocks to be read from the online redo logs 
files. The ARCH process encounters this wait while reading from the redo log 
files.
log file switch (archiving needed)
The log file switch wait indicates 
that the ARCH process is not keeping up with LGWR process writing to redo log 
files. When operating the database in archive log mode, the LGWR process cannot 
overwrite or switch to the redo log file until the ARCH process has archived it 
by copying it to the archived log file destination. A failed write to the 
archive log file destination may stop the archiving process. Such an error will 
be reported in the alert log file.
log file switch (checkpoint incomplete)
The log file switch wait indicates 
that the process is waiting for the log file switch to complete, but the log 
file switch is not possible because the checkpoint process for that log file has 
not completed. You may see this event when the redo log files are sized too 
small.
log file switch completion
This wait event occurs when the process is waiting for log 
file switch to complete.
log file sync
When a user session completes a transaction, either by a 
commit or a rollback, the session’s redo information must be written to the redo 
logs by LGWR process before the session can continue processing. The process 
waits on this event while LGWR process completes the I/O to the redo log 
file.
SQL*Net message from client
This wait event is posted by the session when it is waiting 
for a message from the client to arrive. Generally, this means that the session 
is sitting idle. Excessive wait time on this event in batch programs that do not 
interact with an end user at a keyboard may indicate some inefficiency in the 
application code or in the network layer. However, the database performance is 
not degraded by high wait times for this wait event, because this event clearly 
indicates that the perceived database performance problem is actually not a 
database problem.
SQL*Net message to client
This wait event is posted by the session when it is sending 
a message to the client. The client process may be too busy to accept the 
delivery of the message, causing the server session to wait, or the network 
latency delays may be causing the message delivery to take longer.
No comments:
Post a Comment