Latch Locks
Latch locks are lightweight synchronization mechanisms used by Oracle to protect shared data structures in memory. Here are some common latch locks and their causes:
- cache buffers chains latch: This latch protects the buffer cache chains,
which are used to manage the buffer cache. Contention on this latch can occur due
to:
- High buffer cache activity (for example, frequent reads and writes).
- Poor buffer cache sizing or configuration.
- High concurrency (for example, many sessions accessing the same data).
- cache buffers lru chain latch: This latch protects the LRU (Least Recently
Used) chain, which is used to manage the buffer cache. Contention on this latch can
occur due to:
- High buffer cache activity (for example, frequent reads and writes).
- Poor buffer cache sizing or configuration.
- redo allocation latch: This latch is used to allocate space in the redo log
buffer. Contention on this latch can occur due to:
- High redo log activity (for example, frequent commits or high DML activity).
- Poor redo log buffer sizing or configuration.
- redo copy latch: This latch is used to copy redo log data from the log buffer
to the redo log files. Contention on this latch can occur due to:
- High redo log activity (for example, frequent commits or high DML activity).
- Poor redo log buffer sizing or configuration.
- library cache latch: This latch protects the library cache, which is used to
store parsed SQL statements and other metadata. Contention on this latch can occur
due to:
- High SQL parsing activity (for example, frequent execution of dynamic SQL).
- Poor cursor management (for example, not using bind variables).
- shared pool latch: This latch protects the shared pool, which is used to
store shared SQL and PL/SQL objects. Contention on this latch can occur due to:
- High shared pool activity (for example, frequent parsing or loading of SQL and PL/SQL objects).
- Poor shared pool sizing or configuration.