log file sync: Wait: oturum, commit'te LGWR'ın redo'yu diske yazmasını bekliyor
OracleNe demek?
Bir oturum COMMIT yaptığında, LGWR'nin redo kayıtlarını redo log dosyalarına yazmasını (flush) bekler. Bu bekleme yüksekse commit gecikmesi vardır.
Neden olur?
Yavaş redo log diskleri (yüksek I/O gecikmesi), aşırı sık commit yapan uygulama (satır satır commit), LGWR süreci üzerindeki CPU baskısı veya redo hacminin çok yüksek olması.
Nasıl çözülür?
Ortalama bekleme süresini AWR/Statspack ile ölçün. Redo log dosyalarını hızlı, düşük gecikmeli disklere (SSD) taşıyın. Uygulamada gereksiz commit sıklığını azaltın, toplu işlemleri gruplayın. Gerekirse COMMIT_LOGGING/COMMIT_WAIT (commit_write) seçeneklerini iş gereksinimine göre değerlendirin; UYARI: NOWAIT/BATCH dayanıklılığı (durability) azaltır, çökme anında commit edilmiş görünen transaction'lar kaybolabilir. Yalnızca kaybın tolere edilebildiği işlerde, oturum ya da ifade düzeyinde kullanın; sistem genelinde açmayın. LGWR ve depolama gecikmesini birlikte inceleyin.
Aynı motorda diğer kayıtlar
- ORA-01722Invalid number
- ORA-02049Timeout: distributed transaction waiting for lock
- enq: TX - row lock contentionWait: oturum, başka bir transaction'ın tuttuğu row-level lock'ı 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
- 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