- Bu bölümdeki birkaç tarif, en önemli Oracle bekleme olaylarını nasıl analiz edeceğinizi göstermektedir.
Veritabanındaki bekleme süresinin bir çoğu, tam tablo taramaları veya indexli okumaların(indexed reads) neden olduğu gibi I/O ile ilgili beklemelerden kaynaklanmaktadır.
indexe eklenmiş(indexed reads) okumalar tamamen normal gibi gözükse de, çok sayıda indexe eklenmiş okuma da performansı yavaşlatabilir.
Bu nedenle, veritabanının neden çok sayıda indexe eklenmiş okuma gerçekleştirdiğini araştırmanız gerekir.
Örneğin, bekleme olayı listesinin en üstündeki "db file sequential read event" (indexe eklenmiş okumaları gösterir) görürseniz,
veritabanının bu okundu olaylarını nasıl biriktirdiğini görmek için biraz daha dikkatli olmalısınız.
Veritabanının her sorguda sadece birkaç dizinlenmiş okuma yaparak yüz binlerce sorgu yürütme yaptığını fark ederseniz sorun yok.
Bununla birlikte, yalnızca birkaç sorgunun çok sayıda mantıksal okuma oluşturduğunu düşünüyorsanız, büyük olasılıkla bu sorgular, gerekenden daha fazla veri okuyor.
Bu soruları "db file sequential read events" ı azaltmak için ayarlamanız gerekir.
Nasıl Çalışır:
- Bekleme olayları, bir sunucunun "processing" e devam etmesi için bir olayın tamamlanmasını beklediğinde bir sunucu işlemi veya iş parçacığının arttığı istatistiklerdir. Örneğin, bir SQL deyimi verileri değiştiriyor olabilir, ancak sunucu işlemi bir veri bloğunun diskten okunmasını beklemek zorunda kalabilir, çünkü SGA'da mevcut değildir.
Çok sayıda bekleme olayı olmasına rağmen en yaygın olaylar şunlardır:
• buffer busy waits
• free buffer waits
• db file scattered read
• db file sequential read
• enqueue waits
• log buffer space
• log file sync
- Oracle bekleme olaylarını analiz etmek, yavaş çalışan sorgularda sorun gidermek için yapacağınız en önemli performans ayarlama görevidir.
Bir sorgu yavaş çalıştığı zaman, genellikle bir tür veya başka bir aşırı bekleme olduğu anlamına gelir. Beklemelerden bazıları, eksik indexler nedeniyle aşırı I/O yapması nedeniyle olabilir.
Diğer beklemelere bir latch veya locking olayı neden olabilir.
- Bununla birlikte, bekleme olaylarının yalnızca altta yatan sorunlarını anlamak önemlidir; bu nedenle, bekleme olayını belirli bir soruna değil, sorunun kendisine ait bir pencere olarak görmelisiniz.
- Oracle, buffer da contention veya latch contention gibi bir sorunla karşılaştığında, bu kilitleme veya arabelleğe ilişkin belirli bir bekleme olayını basitçe artırır.
Bunu yaparak, veritabanı belirli bir kaynağı nerede beklemek zorunda olduğunu gösterir ve böylece işleme devam edemez.
Buffer veya latch contention sıklıkla hatalı uygulama mantığı için izlenebilir, ancak bazı bekleme olayları yanlış yapılandırılmış bir RAID sistemi gibi sistem sorunlarından da kaynaklanabilir. Eksik indeksler, uygun olmayan başlatma parametreleri, başlatma parametreleri için yetersiz değerler, ve redolog dosyalarının yetersiz boyutlandırılması, bir veritabanında aşırı beklemelere neden olabilecek şeylerin bazıları.
- Oracle bekleme olaylarını analiz etmenin en büyük yararı, performans ayarlamasındaki varsayımları gerektirmesidir; performansı düşürmenin nedeninin tam olarak ne olduğunu görebilirsiniz, böylece sorunu düzeltmek için hemen odaklanabilirsiniz.