Historydeki İstatistikleri Tekrar Nasıl Kullanabiliriz

Database’ inizde örneğin gather_stats_job’ ınız disable değil ise database’ in istatistikleri belli aralıklarla güncelleniyor demektir. Alınan her bir istatistik belli bir süre boyunca history’ de saklanır. Aslında bu özellik çok sık kullanılmamakla birlikte bazen çok işimize yarayabilmektedir.

Örneğin, çok büyük bir tablonuz var ve bir gün önce bu tablo üzerindeki tüm sorgularınızın performans şikayeti olmadan çalıştığını ancak şu anda sorguların büyük bir çoğunluğunun index kullanmadığını yani full table scan yaptığını farkettiniz. Bu durumun bir çok nedeni olabilir. Biz bunun nedenin istatistiklerde yaşanan bir problem den dolayı kaynaklandığını düşünelin veya bu ihtimal üzerinde duralım ve neler yapabiliriz onlar üzerinde konuşalım.
Continue reading

İstatistiklerin Test Edildikden Sonra Yayınlanması

Burada bahsedeceğimiz bu özellik 11g ile beraber gelen zaman zaman dayanlış yapmamızın önüne geçen güzel bir özellik aslında ama yeteri kadar bilinmediği kaanatindeyim.

Önce kısaca ne olduğundan bahsedelim. Kimi zaman aktif olarak çalışan bazı sql’ lerin performanslarında ciddi yavaşlamalar görürüz. Bunu ya biz farkederiz yada kullanıcılardan gelen şikeyetler doğrultusunda farkederiz. Bu tarz durularda öncelikle sorgunun execution planını incelemekle işe başlarız sonrasında select edilmeye çalışılan data miktarı, sorgu içerisindeki where conditionları olmak üzere bazı noktaları gözden geçiririz. İşte bunlardan biride ki çoğu zaman aldığımız ilk aksiyon da budur diyebiliriz, istatistiklerin güncel olup olmadığını kontrol etmek veya hemen bir istatistik alıp sorgunun performansına ondan sonra bakmak oluyor. İşte tam bu noktada özelliklede üzerinde çalıştığınız tablolar çok büyük ise istatistikleri güncelenin etkilerini önce siz gördükden sonra ve sorgunun performansına olumlu etkileri test ettikten bu istatistikleri diğer kullanıcılarında kullanımına sunmak sizi oluşabilecek daha kötü bir senaryodan koruyacaktır.
Continue reading