library cache lock: Wait: library cache nesne handle'ı üzerinde contention (parse/DDL sıralaması)
OracleNe demek?
Bir oturum, library cache'teki bir nesnenin (SQL, PL/SQL, tablo tanımı) lock'unu bekliyor. Genellikle ayrıştırma (parse) ve DDL işlemlerinin seri hale gelmesiyle oluşur.
Neden olur?
Çok kullanılan nesneler üzerinde çalışan DDL (ALTER/CREATE), sık yeniden derlenen (invalidation) PL/SQL nesneleri, aşırı hard parse, bağımlı nesnelerin geçersizleşmesi veya yoğun eşzamanlı bağlantı fırtınaları.
Nasıl çözülür?
Engelleyen oturumu ve nesneyi bulun (v$session, ASH, gerekirse library cache lock tanılaması). Yoğun saatlerde çok kullanılan nesnelere DDL çalıştırmaktan kaçının. Bağımlılık zincirini azaltıp gereksiz yeniden derlemeleri önleyin. Bind değişkeni kullanarak hard parse'ı düşürün. Bağlantı fırtınalarını connection pool ile yumuşatın.
Aynı motorda diğer kayıtlar
- db file scattered readWait: çok bloklu fiziksel okuma; genellikle full table scan ya da index fast full scan
- buffer busy waitsWait: başka bir oturumun okuduğu ya da değiştirdiği buffer üzerinde contention
- gc buffer busyWait (RAC): instance'lar arasında taşınan cache fusion block'u üzerinde contention
- ORA-00604error occurred at recursive SQL level
- ORA-01438value larger than specified precision allowed for this column
- ORA-01400cannot insert NULL into (column)
- ORA-02291integrity constraint violated - parent key not found