buffer busy waits: Wait: başka bir oturumun okuduğu ya da değiştirdiği buffer üzerinde contention
OracleNe demek?
Bir oturum, başka bir oturumun aynı anda okuduğu veya değiştirdiği bir buffer bloğuna erişmek için bekliyor. Bellek içi blok çekişmesidir.
Neden olur?
Hot block'lar üzerinde yoğunlaşma, artan sıralı anahtarlı index'lerin sağ ucunda çekişme, yetersiz freelist/ASSM olmayan segmentler veya aynı bloğa yoğun eşzamanlı DML.
Nasıl çözülür?
Hangi segment ve blok sınıfının etkilendiğini bulun (v$session, v$segment_statistics, ASH). Hot index block'ları için ters anahtarlı (reverse key) veya hash bölümlü index düşünün. ASSM (Automatic Segment Space Management) kullanın. Yüksek eşzamanlılıkta INITRANS/PCTFREE değerlerini artırın. Uygulama erişim desenini dağıtın.
Aynı motorda diğer kayıtlar
- log file syncWait: oturum, commit'te LGWR'ın redo'yu diske yazmasını bekliyor
- db file sequential readWait: tek bloklu fiziksel okuma; genellikle index ya da tablo erişimi
- db file scattered readWait: çok bloklu fiziksel okuma; genellikle full table scan ya da index fast full scan
- gc buffer busyWait (RAC): instance'lar arasında taşınan cache fusion block'u üzerinde contention
- library cache lockWait: library cache nesne handle'ı üzerinde contention (parse/DDL sıralaması)
- ORA-00604error occurred at recursive SQL level
- ORA-01438value larger than specified precision allowed for this column