What is Oracle wait events?
Oracle Wait Events are conditions where a session is waiting for something to happen. A wait event can be caused by many things, from slow read/write speeds on the disk, to locking situations caused by the architecture, to various kinds of Oracle contentions. Waits are either system-level or session-level. A session-level wait event is an event that affects a single user activity within the database. System-level wait events affect the entire database system.
When Oracle executes an SQL
statement, it is not constantly executing. Sometimes it has to wait
for a specific event to happen befor it can proceed.
For example, if Oracle (or the SQL statement) wants to modify data, and the corresponding
database block is not currently in the
SGA, Oracle waits for this block to be available for
modification.
All possible wait events can be found in
v$event_name. In Oracle 10g R1, there
are some 806 different wait events.
What Oracle waits for and how long it has totally waited for these events can be monitored through the
following views:
Oracle Wait Events
Before looking into wait events, let us understand various state of user process.Oracle user process is typically in one of the three states:
a. Idle wait. e.g. 'SQL*Net message from client'
b. Running code - Either on CPU or on a run queue. Oracle itself does not know if it is on-CPU or just on a run queue.
c. Waiting
i. for some resource to become available. e.g. enqueue (lock) or a latch
ii. for an activity to complete that it has requested. Like an IO read request.
Oracle has a set of 'Wait Events' for activities in 'a' and 'c', and record CPU utilization for 'b'.
This is best illustrated with a simplified example of few seconds in the life of an Oracle shadow process:
State Notes...
IDLE : Waiting for 'SQL*Net message from client'. Receives a SQL*Net packet requesting 'parse/execute' of a statement
ON CPU : decodes the SQL*Net packet.
WAITING : Waits for 'latch free' to obtain the a 'library cache' latch Gets the latch.
ON CPU : Scans for the SQL statement in the shared pool, finds a match, frees latch , sets up links to the shared cursor etc.. & begins to execute.
WAITING : Waits for 'db file sequential read' as we need a block which is not in the buffer cache. Ie: Waiting for an IO to complete.
ON CPU : Block read has completed so execution can continue. Constructs a SQL*Net packet to send back to the user containing the first row of data.
WAITING : Waits on 'SQL*Net message to client' for an acknowledgement that the SQL*Net packet was reliably delivered.
IDLE : Waits on 'SQL*Net message from client' for the next thing to do.
Most common wait events are..
Buffer Busy waits/Cache Buffers Chains Latch waits
•This wait happens when a session wants to access a database block in the buffer cache but it cannot as the buffer is "busy". The two main cases where this can occur are:
1.Another session is reading the block into the buffer
2.Another session holds the buffer in an incompatible mode to our request
Cache Buffers Chains Latch waits are caused by contention where multiple sessions waiting to read the same block.
Typical solutions are:-
Look at the execution plan for the SQL being run and try to reduce the gets per executions which will minimise the number of blocks being accessed and therefore reduce the chances of multiple sessions contending for the same block.
Increase the PCTFREE for the table storage parameter. This will result in less rows per block.
Consider implementing reverse key indexes. (if range scans aren't commonly used against the segment)
In v$session_wait, the P1, P2, and P3 columns identify the file number, block number, and buffer busy reason codes, respectively.
"Read By Other Session" wait event.
When user sessions request for data, Oracle will first read the data from disk into the database buffer cache. If two or more sessions request the same data, the first session will read the data into the buffer cache while other sessions wait. In previous versions, this wait was classified under the "buffer busy waits" event. However, in Oracle 10g and higher, this wait time is now broken out into the "read by other session" wait event.
Excessive waits for this event are typically due to several processes repeatedly reading the same blocks, e.g. many sessions scanning the same index or performing full table scans on the same table. Tuning this issue is a matter of finding and eliminating this contention.
When a session is waiting on this event, an entry will be seen in the v$session_wait system view giving more information on the blocks being waited for:
SELECT p1 "file#", p2 "block#"
FROM v$session_wait WHERE event = 'read by other session';
If information collected from the above query repeatedly shows that the same block (or range of blocks) is experiencing waits, this indicates a "hot" block or object.
The following query will give the name and type of the object:
SELECT owner, segment_name, segment_type
FROM dba_extents WHERE file_id = &file
AND &block BETWEEN block_id AND block_id + blocks - 1
Log File Sync waits
Log file sync waits occur when sessions wait for redo data to be written to disk.
Typically this is caused by slow writes or committing too frequently in the application.
DB file sequential read
Wait for an I/O read request to complete. A sequential read is usually a single-block read. This differs from "db file scattered read" in that a sequential read reads data into contiguous memory (whilst a scattered read reads multiple blocks and scatters them into different buffers in the SGA).
DB file scattered read
This wait happens when a session is waiting for a multiblock IO to complete. This typically occurs during full table scans or index fast full scans. Oracle reads up to DB_FILE_MULTIBLOCK_READ_COUNT consecutive blocks at a time and scatters them into buffers in the buffer cache.
Direct path read
Direct path reads are generally used by Oracle when reading directly into PGA memory (as opposed to into the buffer cache).
This style of read request is typically used for:
Sort I/Os when memory Sort areas are exhausted and temporary tablespaces are used to perform the sort
Parallel Query slaves.
Direct path write
This wait is seen for:
Direct load operations (eg: Create Table as Select (CTAS) may use this)
Parallel DML operations
Sort IO (when a sort does not fit in memory)
DB file parallel write
DBW waits on "db file parallel write" when waiting for a parallel write to files and blocks to complete.
The db file parallel write occurs when the process, typically DBWR, has issued multiple I/O requests in parallel to write dirty blocks from the buffer cache to disk, and is waiting for all requests to complete.
V$Session_wait_history
From Oracle Database 10g a new view V$Session_wait_history will allow us to see the last few wait events a session waited on.
The last 10 wait events that a session experienced can be displayed using the v$session_wait_history view. The session has to be currently active. Once the session ends this information is not available.
We can use the seq# column to sort the wait events into the order in which the wait events occurred for the session.
Oracle Wait Events
Queries pass through hundreds of internal database processes called Oracle Wait Events.
Commonly encountered wait events include:
Block Change Tracking Buffer—Related to the sizing / usage of the CTWR dba buffer in the Large Pool memory structure.
Buffer Busy Wait—This wait event happens when a session tries to access a block in the buffer cache but it can't because the buffer is busy, that is another session is modifying the block and the contents of the block are in flux.
Control File Reads and Writes—The three different wait events of 'control file sequential read', 'control file single write', and 'control file parallel write' all contribute to the amount of time Oracle takes to keep the control file current. Through normal operation the control file is continuously hammered with reads and writes as it is being updated.
Db File Sequential Read—There are two things you can do to these waits: optimize the SQL statement or reduce the average wait time.
Direct Path Read Temp—When a session reads buffers from disk directly into the PGA, the wait is on direct path read temp. This is closely related to the direct path read wait.
Enq: TX - row lock contention—A wait for the Oracle TX enqueue in mode 6 (row lock contention) is a common enqueue wait, and occurs when a transaction tries to update or delete rows that are currently locked by another transaction.
Enq: TM - index contention—Waits on enq: TM - contention in Oracle indicate there are unindexed foreign key constraints. In this article, I examine how foreign key constraints relate to this wait event and how to tune for this event.
File Open—This wait event happens when the database needs to open a file. Wait time is recorded starting just prior to when the open request is issued and extends until the time the request is returned, having succeeded or failed, from the operating system.
Index Block Split—As applications, users or sessions request rows from a table, Oracle may determine which index access path is best for finding rows in a table. If another session is inserting or updating data during this index lookup process, which in turn causes updates to that index and requires an index block split, the first session must wait on that index block split until finished. This is the index block split wait event.
Latch Free—This wait event occurs when a session needs a latch, tries to get the latch, but fails because someone else has it. When this happens, the session sleeps with a wait on latch free, wakes up and tries again. The time it was asleep is the wait time for "latch free."
Locking and Enqueue Waits—Oracle enqueue waits indicate that a seesion is waiting for a lock that is held by another user (or sessions). For Oracle 9i, there is a specific Enqueue wait event. For Oracle 10g and later, the Enqueue wait event has been separated into more than 200 unique wait events, which each include more specific information about the related lock type.
Log Buffer Space—This wait event occurs when server processes write data into the log buffer faster than the LGWR process can write it out.
Log File Switch Completion—As data is manipulated and altered in an Oracle database, time must be spent recording and archiving these changes through redo log generation. The subsequent wait is known as Oracle log file switch completion.The performance impact of switching too many redo logs is the culprit.
Log File Sync—This wait event is triggered when a user session issues a commit (or a rollback). The user session will signal or post the LGWR to write the log buffer to the redo log file. When the LGWR has finished writing, it will post the user session.
Oracle RAC Wait Events— Monitoring an Oracle RAC database often means monitoring this situation and the amount of requests going back and forth over the RAC interconnect. The most common wait events related to this are gc cr request and gc buffer busy.
PL/SQL Lock Timer—This wait event represents the amount of time a user or application has "slept" through the USER_LOCK.SLEEP or DBMS_LOCK.SLEEP procedures. The PL/SQL lock timer event is worth watching because it can indicate issues with application response, throughput and possibly coding.
Ready by Other Session—When a session waits on the "read by other session" event, it indicates a wait for another session to read the data from disk into the Oracle buffer cache. If this happens too often the performance of the query or the entire database can suffer.
RO Enqueue—This wait event is used to synchronize the work required between a foreground process and background process such as DBWR or CKPT. It is most often seen when dropping objects or truncating tables.
Row Cache Lock Wait—In order for DDL (Data Definition Language) to execute, it must acquire a row cache lock to lock the Data Dictionary information. The shared pool contains a cache of rows from the data dictionary that helps reduce physical I/O to the data dictionary tables and allows locking of individual data dictionary rows.
Wait events Oracle 11g2 (RAC) – Enqueues
Enqueues – are shared memory structures (locks) that serialize access to database resources. They can be associated with a session or transaction. Enqueue names are displayed in theLOCK_TYPE
column of the DBA_LOCK
and DBA_LOCK_INTERNAL
data dictionary views.In case your session is slow you can always check what it’s waiting for in v$session table.
This query just shows sessions waiting for enqueue resources
SELECT sid, serial#, event, wait_class FROM v$session WHERE event LIKE 'enq:%'; |
To get description of an enqueue resource use following query.
SELECT eq_name "Enqueue", ev.name "Enqueue Type", eq.req_description "Description" FROM v$enqueue_statistics eq, v$event_name ev WHERE eq.event#=ev.event# ORDER BY ev.name; |
Enqueue name | Enqueue type | Description |
Auto BMR | enq: AB – ABMR process initialized | Lock held to ensure that ABMR process is initialized |
Auto BMR | enq: AB – ABMR process start/stop | Lock held to ensure that only one ABMR is started in the cluster |
ASM Disk AU Lock | enq: AD – allocate AU | Synchronizes accesses to a specific ASM disk AU |
ASM Disk AU Lock | enq: AD – deallocate AU | Synchronizes accesses to a specific ASM disk AU |
ASM Disk AU Lock | enq: AD – relocate AU | Synchronizes accesses to a specific ASM disk AU |
Edition Lock | enq: AE – lock | Prevent Dropping an edition in use |
Advisor Framework | enq: AF – task serialization | This enqueue is used to serialize access to an advisor task |
Analytic Workspace Generation | enq: AG – contention | Synchronizes generation use of a particular workspace |
ASM Enqueue | enq: AM – ASM ACD Relocation | Block ASM cache freeze |
ASM Enqueue | enq: AM – ASM Amdu Dump | Allow only one AMDU dump when block read failure |
ASM Enqueue | enq: AM – ASM File Destroy | Prevent same file deletion race |
ASM Enqueue | enq: AM – ASM Grow ACD | Serializes growing ASM ACD |
ASM Enqueue | enq: AM – ASM Password File Update | Allow one ASM password file update per cluster at a time |
ASM Enqueue | enq: AM – ASM User | Prevents a user from being dropped if it owns any open files |
ASM Enqueue | enq: AM – ASM cache freeze | Start ASM cache freeze |
ASM Enqueue | enq: AM – ASM disk based alloc/dealloc | Synchronizes disk based allocations/deallocations |
ASM Enqueue | enq: AM – ASM file descriptor | Serializes access to ASM file descriptors |
ASM Enqueue | enq: AM – ASM file relocation | Serializes file relocation shrink and drop |
ASM Enqueue | enq: AM – ASM reserved | Check id1 of call for specific purpose |
ASM Enqueue | enq: AM – background COD reservation | Reserve a background COD entry |
ASM Enqueue | enq: AM – block repair | Serializes block repairs |
ASM Enqueue | enq: AM – client registration | Registers DB instance to ASM client state object hash |
ASM Enqueue | enq: AM – disk offline | Synchronizes disk offlines |
ASM Enqueue | enq: AM – group block | ASM group block |
ASM Enqueue | enq: AM – group use | Client group use |
ASM Enqueue | enq: AM – rollback COD reservation | Reserve a rollback COD entry |
ASM Enqueue | enq: AM – shutdown | Prevent DB instance registration during ASM instance shutdown |
MultiWriter Object Access | enq: AO – contention | Synchornizes access to objects and scalar variables |
SPM Autopurge | enq: AP – contention | This enqueue is used to serialize the purging of SQL plan baselines |
Service Operations | enq: AS – service activation | Synchronizes new service activation |
Alter Tablespace | enq: AT – contention | Serializes ‘alter tablespace’ operations |
ASM volume locks | enq: AV – AVD client registration | Serialize inst reg and first DG use |
ASM volume locks | enq: AV – add/enable first volume in DG | Serialize taking the AVD DG enqueue |
ASM volume locks | enq: AV – persistent DG number | prevent DG number collisions |
ASM volume locks | enq: AV – volume relocate | Serialize relocating volume extents |
Analytic Workspace | enq: AW – AW generation lock | In-use generation state for a particular workspace |
Analytic Workspace | enq: AW – AW state lock | Row lock synchronization for the AW$ table |
Analytic Workspace | enq: AW – AW$ table lock | Global access synchronization to the AW$ table |
Analytic Workspace | enq: AW – user access for AW | Synchronizes user accesses to a particular workspace |
KSXA Test Affinity Dictionary | enq: AY – contention | Affinity Dictionary test affinity synchronization |
Global Transaction Branch | enq: BB – 2PC across RAC instances | 2PC distributed transaction branch across RAC instances |
BLOOM FILTER | enq: BF – PMON Join Filter cleanup | PMON bloom filter recovery |
BLOOM FILTER | enq: BF – allocation contention | Allocate a bloom filter in a parallel statement |
clonedb bitmap file access | enq: BM – clonedb bitmap file write | synchronizes clonedb bitmap file operations |
Backup/Restore | enq: BR – file shrink | Lock held to prevent file from decreasing in physical size during RMAN backup |
Backup/Restore | enq: BR – multi-section restore header | Lock held to serialize file header access during multi-section restore |
Backup/Restore | enq: BR – multi-section restore section | Lock held to serialize section access during multi-section restore |
Backup/Restore | enq: BR – perform autobackup | Lock held to perform a new controlfile autobackup |
Backup/Restore | enq: BR – proxy-copy | Lock held to allow cleanup from backup mode during an RMAN proxy-copy backup |
Backup/Restore | enq: BR – request autobackup | Lock held to request controlfile autobackups |
Backup/Restore | enq: BR – space info datafile hdr update | Lock held to prevent multiple process to update the headers at the same time |
Calibration | enq: CA – contention | Synchronizes various IO calibration runs |
Controlfile Transaction | enq: CF – contention | Synchronizes accesses to the controlfile |
Cross-Instance Call Invocation | enq: CI – contention | Coordinates cross-instance function invocations |
Label Security cache | enq: CL – compare labels | Synchronizes accesses to label cache for label comparison |
Label Security cache | enq: CL – drop label | Synchronizes accesses to label cache when dropping a label |
ASM Instance Enqueue | enq: CM – diskgroup dismount | serialize asm diskgroup dismount |
ASM Instance Enqueue | enq: CM – gate | serialize access to instance enqueue |
ASM Instance Enqueue | enq: CM – instance | indicate ASM diskgroup is mounted |
KTCN REG enq | enq: CN – race with init | during descriptor initialization |
KTCN REG enq | enq: CN – race with reg | during transaction commit to see concurrent registrations |
KTCN REG enq | enq: CN – race with txn | during registration |
KTUCLO Master Slave enq | enq: CO – master slave det | enqueue held be Master in Cleanout Optim |
Cleanup querycache registrations | enq: CQ – contention | Serializes access to cleanup client query cache registrations |
Reuse Block Range | enq: CR – block range reuse ckpt | Coordinates fast block range reuse ckpt |
Block Change Tracking | enq: CT – CTWR process start/stop | Lock held to ensure that only one CTWR process is started in a single instance |
Block Change Tracking | enq: CT – change stream ownership | Lock held by one instance while change tracking is enabled, to guarantee access to thread-specific resources |
Block Change Tracking | enq: CT – global space management | Lock held during change tracking space management operations that affect the entire change tracking file |
Block Change Tracking | enq: CT – local space management | Lock held during change tracking space management operations that affect just the data for one thread |
Block Change Tracking | enq: CT – reading | Lock held to ensure that change tracking data remains in existence until a reader is done with it |
Block Change Tracking | enq: CT – state | Lock held while enabling or disabling change tracking, to ensure that it is only enabled or disabled by one user at a time |
Block Change Tracking | enq: CT – state change gate 1 | Lock held while enabling or disabling change tracking in RAC |
Block Change Tracking | enq: CT – state change gate 2 | Lock held while enabling or disabling change tracking in RAC |
Cursor | enq: CU – contention | Recovers cursors in case of death while compiling |
TEXT: Index Specific Lock | enq: CX – TEXT: Index Specific Lock | Index Specific Lock on CTX index |
DbsDriver | enq: DB – contention | Synchronizes modification of database wide supplementallogging attributes |
ASM Local Disk Group | enq: DD – contention | Synchronizes local accesses to ASM disk groups |
Datafile Online in RAC | enq: DF – contention | Enqueue held by foreground or DBWR when a datafile is brought online in RAC |
ASM Disk Group Modification | enq: DG – contention | Synchronizes accesses to ASM disk groups |
Direct Loader Index Creation | enq: DL – contention | Lock to prevent index DDL during direct load |
Database Mount/Open | enq: DM – contention | Enqueue held by foreground or DBWR to syncrhonize database mount/open with other operations |
Diskgroup number generator | enq: DN – contention | Serializes group number generations |
ASM Disk Online Lock | enq: DO – Staleness Registry create | Synchronizes Staleness Registry creation |
ASM Disk Online Lock | enq: DO – disk online | Synchronizes disk onlines and their recovery |
ASM Disk Online Lock | enq: DO – disk online operation | Represents an active disk online operation |
ASM Disk Online Lock | enq: DO – disk online recovery | Synchronizes disk onlines and their recovery |
ASM Disk Online Lock | enq: DO – startup of MARK process | Synchronizes startup of MARK process |
LDAP Parameter | enq: DP – contention | Synchronizes access to LDAP parameters |
Distributed Recovery | enq: DR – contention | Serializes the active distributed recovery operation |
Database Suspend | enq: DS – contention | Prevents a database suspend during LMON reconfiguration |
Default Temporary Tablespace | enq: DT – contention | Serializes changing the default temporary table spaceand user creation |
Diana Versioning | enq: DV – contention | Synchronizes access to lower-version Diana (PL/SQL intermediate representation) |
In memory Dispenser | enq: DW – contention | Serialize in memory dispenser operations |
Distributed Transaction | enq: DX – contention | Serializes tightly coupled distributed transaction branches |
ASM File Access Lock | enq: FA – access file | Synchronizes accesses to open ASM files |
Format Block | enq: FB – contention | Ensures that only one process can format data blcoks in auto segment space managed tablespaces |
Disk Group Chunk Mount | enq: FC – open an ACD thread | LGWR opens an ACD thread |
Disk Group Chunk Mount | enq: FC – recover an ACD thread | SMON recovers an ACD thread |
Flashback Database | enq: FD – Flashback coordinator | Synchronization |
Flashback Database | enq: FD – Flashback logical operations | Synchronization |
Flashback Database | enq: FD – Flashback on/off | Synchronization |
Flashback Database | enq: FD – Marker generation | Synchronization |
Flashback Database | enq: FD – Restore point create/drop | Synchronization |
Flashback Database | enq: FD – Tablespace flashback on/off | Synchronization |
KTFA Recovery | enq: FE – contention | Serializes flashback archive recovery |
ACD Relocation Gate Enqueue | enq: FG – FG redo generation enq race | resolve race condition to acquire Disk Group Redo Generation Enqueue |
ACD Relocation Gate Enqueue | enq: FG – LGWR redo generation enq race | resolve race condition to acquire Disk Group Redo Generation Enqueue |
ACD Relocation Gate Enqueue | enq: FG – serialize ACD relocate | only 1 process in the cluster may do ACD relocation in a disk group |
Flashback database log | enq: FL – Flashback database log | Synchronization |
Flashback database log | enq: FL – Flashback db command | Enqueue used to synchronize Flashback Database and and deletion of flashback logs. |
File Mapping | enq: FM – contention | Synchronizes access to global file mapping state |
File Object | enq: FP – global fob contention | Synchronizes various File Object(FOB) operations |
Disk Group Recovery | enq: FR – contention | begin recovery of disk group |
Disk Group Recovery | enq: FR – recover the thread | wait for lock domain detach |
Disk Group Recovery | enq: FR – use the thread | indicate this ACD thread is alive |
File Set / Dictionary Check | enq: FS – contention | Enqueue used to synchronize recovery and file operations or synchronize dictionary check |
Disk Group Redo Generation | enq: FT – allow LGWR writes | allow LGWR to generate redo in this thread |
Disk Group Redo Generation | enq: FT – disable LGWR writes | prevent LGWR from generating redo in this thread |
DBFUS | enq: FU – contention | This enqueue is used to serialize the capture of the DB Feature Usage and High Water Mark Statistics |
ACD Xtnt Info CIC | enq: FX – issue ACD Xtnt Relocation CIC | ARB relocates ACD extent |
ASM Disk Header | enq: HD – contention | Serializes accesses to ASM SGA data structures |
Queue Page | enq: HP – contention | Synchronizes accesses to queue pages |
Hash Queue | enq: HQ – contention | Synchronizes the creation of new queue IDs |
Direct Loader High Water Mark | enq: HV – contention | Lock used to broker the high water mark during parallel inserts |
Segment High Water Mark | enq: HW – contention | Lock used to broker the high water mark during parallel inserts |
Internal | enq: IA – contention | |
NID | enq: ID – contention | Lock held to prevent other processes from performing controlfile transaction while NID is running |
Label Security | enq: IL – contention | Synchronizes accesses to internal label data structures |
Kti blr lock | enq: IM – contention for blr | Serializes block recovery for IMU txn |
Instance Recovery | enq: IR – contention | Synchronizes instance recovery |
Instance Recovery | enq: IR – contention2 | Synchronizes parallel instance recovery and shutdown immediate |
Instance State | enq: IS – contention | Enqueue used to synchronize instance state changes |
In-Mem Temp Table Meta Creation | enq: IT – contention | Synchronizes accesses to a temp object’s metadata |
Job Queue Date | enq: JD – contention | Synchronizes dates between job queue coordinator and slave processes |
Materialized View | enq: JI – contention | Lock held during materialized view operations (like refresh, alter) to prevent concurrent operations on the same materialized view |
Job Queue | enq: JQ – contention | Lock to prevent multiple instances from running a single job |
Job Scheduler | enq: JS – aq sync | Scheduler evt code and AQ sync |
Job Scheduler | enq: JS – contention | Synchronizes accesses to the job cache |
Job Scheduler | enq: JS – evt notify | Lock got during event notification |
Job Scheduler | enq: JS – evtsub add | Lock got when adding subscriber to event q |
Job Scheduler | enq: JS – evtsub drop | Lock got when dropping subscriber to event q |
Job Scheduler | enq: JS – job recov lock | Lock to recover jobs running on crashed RAC inst |
Job Scheduler | enq: JS – job run lock – synchronize | Lock to prevent job from running elsewhere |
Job Scheduler | enq: JS – q mem clnup lck | Lock obtained when cleaning up q memory |
Job Scheduler | enq: JS – queue lock | Lock on internal scheduler queue |
Job Scheduler | enq: JS – sch locl enqs | Scheduler non-global enqueues |
Job Scheduler | enq: JS – wdw op | Lock got when doing window open/close |
SQL STATEMENT QUEUE | enq: JX – SQL statement queue | statement |
SQL STATEMENT QUEUE | enq: JX – cleanup of queue | release SQL statement resources |
Scheduler Master DBRM | enq: KD – determine DBRM master | Determine DBRM master |
Scheduler | enq: KM – contention | Synchronizes various Resource Manager operations |
Multiple Object Checkpoint | enq: KO – fast object checkpoint | Coordinates fast object checkpoint |
Kupp Process Startup | enq: KP – contention | Synchronizes kupp process startup |
ASM Attributes Enque | enq: KQ – access ASM attribute | Synchronization of ASM cached attributes |
Scheduler Plan | enq: KT – contention | Synchronizes accesses to the current Resource Manager plan |
Materialized View Log DDL | enq: MD – contention | Lock held during materialized view log DDL statements |
AQ Notification Mail Host | enq: MH – contention | Lock used for recovery when setting Mail Host for AQ e-mail notifications |
Master Key | enq: MK – contention | changing values in enc$ |
AQ Notification Mail Port | enq: ML – contention | Lock used for recovery when setting Mail Port for AQ e-mail notifications |
LogMiner | enq: MN – contention | Synchronizes updates to the LogMiner dictionary and prevents multiple instances from preparing the same LogMiner session |
MMON restricted session | enq: MO – contention | Serialize MMON operations for restricted sessions |
Media Recovery | enq: MR – contention | Lock used to coordinate media recovery with other uses of datafiles |
Media Recovery | enq: MR – standby role transition | Lock used to disallow concurrent standby role transition attempt |
Materialized View Refresh Log | enq: MS – contention | Lock held during materialized view refresh to setup MV log |
Online Datafile Move | enq: MV – datafile move | Held during online datafile move operation or cleanup |
MWIN Schedule | enq: MW – contention | This enqueue is used to serialize the calibration of the manageability schedules with the Maintenance Window |
ksz synch | enq: MX – sync storage server info | Lock held to generate a response to the storage server information request when an instance is starting up |
Outline Cache | enq: OC – contention | Synchronizes write accesses to the outline cache |
Online DDLs | enq: OD – Serializing DDLs | Lock to prevent concurrent online DDLs |
Outline Name | enq: OL – contention | Synchronizes accesses to a particular outline name |
OLAPI Histories | enq: OQ – xsoq*histrecb | Synchronizes access to olapi history parameter CB |
OLAPI Histories | enq: OQ – xsoqhiAlloc | Synchronizes access to olapi history allocation |
OLAPI Histories | enq: OQ – xsoqhiClose | Synchronizes access to olapi history closing |
OLAPI Histories | enq: OQ – xsoqhiFlush | Synchronizes access to olapi history flushing |
OLAPI Histories | enq: OQ – xsoqhistrecb | Synchronizes access to olapi history globals |
TEXT: Generic Lock | enq: OT – TEXT: Generic Lock | CTX Generic Locks |
Encryption Wallet | enq: OW – initialization | initializing the wallet context |
Encryption Wallet | enq: OW – termination | terminate the wallet context |
Property Lock | enq: PD – contention | Prevents others from updating the same property |
Parameter | enq: PE – contention | Synchronizes system parameter updates |
Password File | enq: PF – contention | Synchronizes accesses to the password file |
Global Parameter | enq: PG – contention | Synchronizes global system parameter updates |
AQ Notification Proxy | enq: PH – contention | Lock used for recovery when setting Proxy for AQ HTTP notifications |
Remote PX Process Spawn Status | enq: PI – contention | Communicates remote Parallel Execution Server Process creation status |
Transportable Tablespace | enq: PL – contention | Coordinates plug-in operation of transportable tablespaces |
Process Startup | enq: PR – contention | Synchronizes process startup |
PX Process Reservation | enq: PS – contention | Parallel Execution Server Process reservation and synchronization |
ASM Partnership and Status Table | enq: PT – contention | Synchronizes access to ASM PST metadata |
KSV slave startup | enq: PV – syncshut | Synchronizes instance shutdown_slvstart |
KSV slave startup | enq: PV – syncstart | Synchronizes slave start_shutdown |
Buffer Cache PreWarm | enq: PW – flush prewarm buffers | Direct Load needs to flush prewarmed buffers if DBWR 0 holds enqueue |
Buffer Cache PreWarm | enq: PW – perwarm status in dbw0 | DBWR 0 holds enqueue indicating prewarmed buffers present in cache |
ASM Rollback Recovery | enq: RB – contention | Serializes ASM rollback recovery operations |
Result Cache: Enqueue | enq: RC – Result Cache: Contention | Coordinates access to a result-set |
RAC Load | enq: RD – RAC load | update RAC load info |
Block Repair/Resilvering | enq: RE – block repair contention | Synchronize block repair/resilvering operations |
Data Guard Broker | enq: RF – DG Broker Current File ID | Identifies which configuration metadata file is current |
Data Guard Broker | enq: RF – FSFO Observer Heartbeat | Captures recent Fast-Start Failover Observer heartbeat information |
Data Guard Broker | enq: RF – FSFO Primary Shutdown suspended | Records when FSFO Primary Shutdown is suspended |
Data Guard Broker | enq: RF – RF – Database Automatic Disable | Means for detecting when database is being automatically disabled |
Data Guard Broker | enq: RF – atomicity | Ensures atomicity of log transport setup |
Data Guard Broker | enq: RF – new AI | Synchronizes selection of the new apply instance |
Data Guard Broker | enq: RF – synch: DG Broker metadata | Ensures r/w atomicity of DG configuration metadata |
Data Guard Broker | enq: RF – synchronization: aifo master | Synchronizes apply instance failure detection and failover operation |
Data Guard Broker | enq: RF – synchronization: critical ai | Synchronizes critical apply instance among primary instances |
wallet_set_mkey | enq: RK – set key | wallet master key rekey |
RAC Encryption Wallet Lock | enq: RL – RAC wallet lock | RAC wallet lock |
Redo Log Nab Computation | enq: RN – contention | Coordinates nab computations of online logs during recovery |
Multiple Object Reuse | enq: RO – contention | Coordinates flushing of multiple objects |
Multiple Object Reuse | enq: RO – fast object reuse | Coordinates fast object reuse |
Resilver / Repair | enq: RP – contention | Enqueue held when resilvering is needed or when datablock is repaired from mirror |
Workload Capture and Replay | enq: RR – contention | Concurrent invocation of DBMS_WORKLOAD_* package API |
Reclaimable Space | enq: RS – file delete | Lock held to prevent file from accessing during space reclaimation |
Reclaimable Space | enq: RS – persist alert level | Lock held to make alert level persistent |
Reclaimable Space | enq: RS – prevent aging list update | Lock held to prevent aging list update |
Reclaimable Space | enq: RS – prevent file delete | Lock held to prevent deleting file to reclaim space |
Reclaimable Space | enq: RS – read alert level | Lock held to read alert level |
Reclaimable Space | enq: RS – record reuse | Lock held to prevent file from accessing while reusing circular record |
Reclaimable Space | enq: RS – write alert level | Lock held to write alert level |
Redo Thread | enq: RT – contention | Thread locks held by LGWR, DBW0, and RVWR to indicate mounted or open status |
Redo Thread | enq: RT – thread internal enable/disable | Thread locks held by CKPT to synchronize thread enable and disable |
Rolling Migration | enq: RU – contention | Serializes rolling migration operations |
Rolling Migration | enq: RU – waiting | Results of rolling migration CIC |
Materialized View Flags | enq: RW – MV metadata contention | Lock held by CREATE/ALTER/DROP materialized viewwhile updating materialized view flags in detail tables |
ASM Extent Relocation Lock | enq: RX – relocate extent | Synchronizes relocating ASM extents |
ASM Extent Relocation Lock | enq: RX – unlock extent | Synchronizes unlocking ASM extents |
LogicalStandby | enq: SB – logical standby metadata | Synchronizes Logical Standby metadata operations |
LogicalStandby | enq: SB – table instantiation | Synchronizes table instantiation and EDS operations |
Session Migration | enq: SE – contention | Synchronizes transparent session migration operations |
AQ Notification Sender | enq: SF – contention | Lock used for recovery when setting Sender for AQ e-mail notifications |
Active Session History Flushing | enq: SH – contention | Should seldom see this contention as this Enqueue is always acquired in no-wait mode |
Streams Table Instantiation | enq: SI – contention | Prevents multiple streams tabel instantiations |
KTSJ Slave Task Cancel | enq: SJ – Slave Task Cancel | Serializes cancelling task executed by slave process |
Shrink Segment | enq: SK – contention | Serialize shrink of a segment |
Serialize Lock request | enq: SL – escalate lock | sending lock escalate to LCK0 |
Serialize Lock request | enq: SL – get lock | sending lock req to LCK0 |
Serialize Lock request | enq: SL – get lock for undo | sending lock req for undo to LCK0 |
Shared Object | enq: SO – contention | Synchronizes access to Shared Object (PL/SQL Shared Object Manager) |
Spare Enqueue | enq: SP – contention 1 | (1) due to one-off patch |
Spare Enqueue | enq: SP – contention 2 | (2) due to one-off patch |
Spare Enqueue | enq: SP – contention 3 | (3) due to one-off patch |
Spare Enqueue | enq: SP – contention 4 | (4) due to one-off patch |
Sequence Cache | enq: SQ – contention | Lock to ensure that only one process can replenish the sequence cache |
Synchronized Replication | enq: SR – contention | Coordinates replication / streams operations |
Sort Segment | enq: SS – contention | Ensures that sort segments created during parallel DML operations aren’t prematurely cleaned up |
Space Transaction | enq: ST – contention | Synchronizes space management activities in dictionary-managed tablespaces |
SaveUndo Segment | enq: SU – contention | Serializes access to SaveUndo Segment |
Suspend Writes | enq: SW – contention | Coordinates the ‘alter system suspend’ operation |
Instance Undo | enq: TA – contention | Serializes operations on undo segments and undo tablespaces |
SQL Tuning Base Existence Cache | enq: TB – SQL Tuning Base Cache Load | Synchronizes writes to the SQL Tuning Base Existence Cache |
SQL Tuning Base Existence Cache | enq: TB – SQL Tuning Base Cache Update | Synchronizes writes to the SQL Tuning Base Existence Cache |
Tablespace Checkpoint | enq: TC – contention | Lock held to guarantee uniqueness of a tablespace checkpoint |
Tablespace Checkpoint | enq: TC – contention2 | Lock of setup of a unqiue tablespace checkpoint in null mode |
KTF map table enqueue | enq: TD – KTF dump entries | KTF dumping time/scn mappings in SMON_SCN_TIME table |
KTF broadcast | enq: TE – KTF broadcast | KTF broadcasting |
Temporary File | enq: TF – contention | Serializes dropping of a temporary file |
Threshold Chain | enq: TH – metric threshold evaluation | Serializes threshold in-memory chain access |
Auto Task Serialization | enq: TK – Auto Task Serialization | Lock held by MMON to prevent other MMON spawning of Autotask Slave |
Auto Task Serialization | enq: TK – Auto Task Slave Lockout | Serializes spawned Autotask Slaves |
Log Lock | enq: TL – contention | Serializes threshold log table read and update |
DML | enq: TM – contention | Synchronizes accesses to an object |
Temp Object | enq: TO – contention | Synchronizes DDL and DML operations on a temp object |
Runtime Fixed Table Purge | enq: TP – contention | Lock held during purge and dynamic reconfiguration of fixed tables. |
Queue table enqueue | enq: TQ – DDL contention | TM access to the queue table |
Queue table enqueue | enq: TQ – DDL-INI contention | Streams DDL on queue table |
Queue table enqueue | enq: TQ – INI contention | TM access to the queue table |
Queue table enqueue | enq: TQ – TM contention | TM access to the queue table |
Temporary Segment | enq: TS – contention | Serializes accesses to temp segments |
Tablespace | enq: TT – contention | Serializes DDL operations on tablespaces |
Cross-Instance Transaction | enq: TW – contention | Lock held by one instance to wait for transactions on all instances to finish |
Transaction | enq: TX – allocate ITL entry | Allocating an ITL entry in order to begin a transaction |
Transaction | enq: TX – contention | Lock held by a transaction to allow other transactions to wait for it |
Transaction | enq: TX – index contention | Lock held on an index during a split to prevent other operations on it |
Transaction | enq: TX – row lock contention | Lock held on a particular row by a transaction to prevent other transactions from modifying it |
User-defined | enq: UL – contention | Lock used by user applications |
Undo Segment | enq: US – contention | Lock held to perform DDL on the undo segment |
AQ Notification Watermark | enq: WA – contention | Lock used for recovery when setting Watermark for memory usage in AQ notifications |
AWR Flush | enq: WF – contention | This enqueue is used to serialize the flushing of snapshots |
Write gather local enqueue | enq: WG – delete fso | acquire lobid local enqueue when deleting fso |
Write gather local enqueue | enq: WG – lock fso | acquire lobid local enqueue when locking fso |
Being Written Redo Log | enq: WL – RAC-wide SGA contention | Serialize access to RAC-wide SGA |
Being Written Redo Log | enq: WL – RFS global state contention | Serialize access to RFS global state |
Being Written Redo Log | enq: WL – Test access/locking | Testing redo transport access/locking |
Being Written Redo Log | enq: WL – contention | Coordinates access to redo log files and archive logs |
WLM Plan Operations | enq: WM – WLM Plan activation | Synchronizes new WLM Plan activation |
AWR Purge | enq: WP – contention | This enqueue handles concurrency between purging and baselines |
LNS archiving log | enq: WR – contention | Coordinates access to logs by Async LNS and ARCH/FG |
XDB Configuration | enq: XC – XDB Configuration | Lock obtained when incrementing XDB configuration version number |
Auto Online Exadata disks | enq: XD – ASM disk OFFLINE | Serialize OFFLINE Exadata disk operations |
Auto Online Exadata disks | enq: XD – ASM disk ONLINE | Serialize ONLINE Exadata disk operations |
Auto Online Exadata disks | enq: XD – ASM disk drop/add | Serialize Auto Drop/Add Exadata disk operations |
AQ Notification No-Proxy | enq: XH – contention | Lock used for recovery when setting No Proxy Domains for AQ HTTP notifications |
ASM Extent Fault Lock | enq: XL – fault extent map | Keep multiple processes from faulting in the same extent chunk |
ASM Extent Relocation Enqueue | enq: XQ – purification | wait for relocation before doing block purification |
ASM Extent Relocation Enqueue | enq: XQ – recovery | prevent relocation during _recovery_asserts checking |
ASM Extent Relocation Enqueue | enq: XQ – relocation | wait for recovery before doing relocation |
Quiesce / Force Logging | enq: XR – database force logging | Lock held during database force logging mode |
Quiesce / Force Logging | enq: XR – quiesce database | Lock held during database quiesce |
Internal Test | enq: XY – contention | Lock used for internal testing |
Audit Partition | enq: ZA – add std audit table partition | lock held to add partition to std audit table |
FGA Partition | enq: ZF – add fga audit table partition | lock held to add partition to fga audit table |
File Group | enq: ZG – contention | Coordinates file group operations |
Compression Analyzer | enq: ZH – compression analysis | Synchronizes analysis and insert into compression$, prevents multiple threads analyzing the same table during a load |
Global Context Action | enq: ZZ – update hash tables | lock held for updating global context hash tables |
************************************END********************************************
No comments:
Post a Comment