Magic World of Oracle: Oracle 11g AWR(Otomatik işyükü ambarı) ile performans istatistikleri
Veritabanı istatistikleri veritabanı üzerindeki yük tipi ile ilgili bilgileri ve veritabanı tarafından kullanılan harici ve dahili kaynak bilgilerini sağlar. ADDM kullanarak veritabanı ile ilgili performans problemlerini tam olarak teşhis etmek için istatistik bilgilerinin olması gerekmektedir.Oracle 11g veritabanı sistemi, oturumlar ve bireysel SQL durumları ile ilgili çok tipte birikmiş istatistikler oluşturur. Ayrıca, servisler ve segmentler ile ilgilide pek çok birikmiş istatististik tutar. Otomatik İş Yükü Ambarı(Automatic Workload Repository-AWR) veritabanı istatistiklerini, veritabanı problem teşhisi ve kendi kendine ayarlama amaçları için performans istatistiklerini toplayarak, işleyerek ve sürdürerek, tüm adımları tek adımda toparlayıp otomatikleştirir.
İstatistik toplama işlemi varsayılan olarak her saatbaşı yapılır ve AWR snapsotu içinde sonuçlandırılır. Bu AWR snapshotu, performansları kıyaslamak üzere belirli zaman aralıklarında alınan veri dizileridir ve genellikle bir saatlik zaman diliminde hafizadan(memory) yapılan sorgular sonucu toplanan istatistik verileridir. AWR ile veritabanı istatistiklerini toplama varsayılan olarak etkinleştirilmiştir ve STATISTICS_LEVEL başlangıç parametresinden kontrol edilmektedir. AWR’in etkin olması için STATISTICS_LEVEL başlangıç parametresinin TYPICAL yada ALL(manuel ayar işlemlerinede imkan sağlar) olarak ayarlanmış olması gerekmektedir(varsayılan olarak TYPICAL’dır). Eğer bu değer BASIC olursa, AWR devredışı kalır ve bu durumda tavsiye edilmez. Otomatik Veritabanı Teşhis İzleme(Automatic Database Diagnostic Monitoring-ADDM)yi etkinleştirmek için CONTROL_MANAGEMENT_PACK_ACCESS başlangıç parametresi DIAGNOSTIC+TUNING(varsayılan ayardır) veya DIAGNOSTIC olarak ayarlanmış olması gerekmektedir. Bu parametrenin NONE olarak ayarlanması ADDM özelliğinin devredışı bırakılması olacağından tavsiye edilmez.1. Oracle 11g Enterprise Manager konsolunda SYS kullanıcısı ve SYSDBA rolü ile oturum açıyoruz.
2. Database Home sayfasından Server tabına tıklıyoruz.3. Statistics Managements altından Automatic Workload Repository linkine tıklıyoruz. Altta bu pencerede yer alan bilgiler ile ilgili açıklamalar yer almaktadır.Snapshot Retention (days): Snapshotların ne kadar gün ambarda saklanacağını belirtir.Snapshot Interval (minutes): Snapshotların kaç dakika aralıkla çekileceğini belirtir.Collection Level: TYPICAL, ALL yada BASIC olarak istatistik parametresidir.Baseline: Performans kıyaslamasında kullanılacak AWR snapshot kümesini ifade eder.
AWR penceresinde General tabı altında EDIT düğmesine tıklanarak bu değerler değiştirilebilir.
4. Her AWR snapsotundan sonra ADDM(Automatic Database Diagnostic Monitor) çalışır ve instance’I gözlemleyerek veritabanında oluşan darboğazları tespit eder ve sonuçları AWR snapshot içerisinde kayıt eder. Database Home sayfası altından Diagnostic Summary altında yer alan ADDM Findings adlı linke tıklayınca aşağıdaki kısım görüntülenir. 1 nolu bölümde; aktif oturumların kaynak kullanım bilgileri anlık olarak gözlemlenebilir.2 nolu bölümde ise; çekilen AWR snapshotlarının durumu tarihsel skalada yer almaktadır.3 nolu bölümde ise; son 24 saat içerisinde saptanan darboğazlar yüzdesel etki olarak yer almaktadır.
5. 3 nolu bölümde yer alan en yüksek etkiye sahip istatistik bulgusunu tıkladıktan( %100 etkiye sahip ilk sıradaki “Top SQL by DB Time” adlı bulgu olabilir) sonra aşağıdaki menu ile karşılaşacağız.
Bu menüde SQL Tuning kategorileri altında yer alan farklı SQL cümleleri için tavsiyeler, filtrelemeler ve SQL cümlelerini analiz edip kaynak kullanımını optimize etmek üzere rapor sunacak olan RUN ADVISOR NOW düğmesi yer almaktadır. SQL cümleleri için geçmiş iyileştirme tavsiye raporlarıda VİEW TUNING HISTORY düğmesine tıklanarak görülebilir.
Bu sayfada yer alan Finding History düğmesine tıklayarak ise bu bulgunun geçmişi aşağıdaki örnekte olduğu gibi görülebilmektedir.
Snapshot İstatistiklerinin GözlemlenmesiEnterprise Konsolunu kullanarak snapshotlar içindeki verileri gözlemleme imkanı bulunmaktadır. Bu snapshotlar daha çok uzman veritabanı yöneticileri tarafından performans problemlerini teşhis etmek amacıyla kullanılmaktadır. Bu istatistikleri gözlemlemek için;1. Oracle EM home ana penceresinden Performance tabına tıklanır.2. Açılan pencerede Additional Monitoring Links bölümü altından Snapshots linki tıklanır.3. Snapshota bağlı istatistikleri görmek için ilgili SNAPSHOT ID’si tıklanarak aşağıda örnekteki snapshot istatistiklerine erişilir. Örneğimizde 16 numaralı snapshot, istatistiklerin toplanma süreleri ile beraber yer almaktadır.
4. İş yükü ambarını(workload repository) gözlemlemek için Report tabına tıklanınca ise bu snapshot süresince instance’ın tüm istatistik raporları XML formatında gözlemlenebilir ve dilerseniz SAVE TO FILE düğmesine tıklayarak bu raporu kaydedebilirsiniz.Zaman Modelli İstatistiklerZaman modelli istatistikler operasyon tipine gore veritabanı içinde harcanan zamanı ölçer. En önemli zaman modelli istatistik türleri, veritabanı zamanıdır(DB Time). DB Time, veritabanı içindeki çağrıları için ne kadar toplam zaman harcandığını belirtir ve toplam instance işyükünün göstergesidir.
Oturum, bir kullanıcının kullanıcı işlemi üzerinden Oracle veritabanı instance’ına yapmış olduğu belirli bir bağlantıyı ifade eder.DB Time, boşta bekleyen işlemler dışında tüm kullanıcıların oturumlarının CPU zamanı ve bekleme zamanının toplamı ile hesaplanır. Bir gıda toptancısı satış personelinin yapmış olduğu online işlemleri gözlemleyelim.1. Ürün kodu ile ürün bilgilerinin PDA cihazda çağrılması: Burada ürün kodu(TEMİZLİK ÜRÜNÜ) ile bu ildeki müşteri bilgilerini getirmek üzere bir sorgu süreci işler.2. Sorgu Sonuçlarına Gözatmak: Listede yeralan pek çok TEMİZLİK ÜRÜNÜ içinden filtreleme tekniği kullanılarak yada kullanılmadan , müşterinin istediği ürünün stok uygunluğuna bakılır. Tabi, bu noktada ilave veritabanı sorgularıda olacaktır.3. Bulunan ürünün çıkışının yapılması: Müşterinin istediği ve stokta olan ürün müşteriye çıkıç yapılır. Bu esnada, müşteri cari hesabına giriş olacağından ilave veritabanı çağrıları olmaktadır. 4. Satış işleminin sonlandırılıması: Ödeme işleminin sonuçlandırılması ile ana menüye dönülür. Bu noktada ilave veritabanı çağılarıda olur(yeni bir siparişin daha verilmesi, ürün stoğunun güncellenmesi v.b)Bu işlem esnasında DB Time süresinin azaltılması için tüm transaction süreçlerinde cevap sürelerinin azatılması gerekmektedir. DB Time süresinin ve kaynak kullanım oranları istatistiklerinin gözlenmesi ile ilgili bir örnek aşağıda yer alır.1. Ana menüden Performans tabı tıklanır.
2. En altta yer alan Additional Monitoring Links adlı tab altından Top Activity linki tıklanır.3. Top SQL Menüsü altında yoğun kaynak kullanan SQL ID’ler yer almaktadır. Burada yoğun yüzdesel olan bir obje seçilip alttan action menüsünden Create SQL Tuning Set seçeneği seçilip GO seçeneğini tıklarız. 4. Karşımıza çıkan Create SQL Tuning Set penceresinde yüksek aktivitede kullanılan bir SQL cümlesinin ne kadar fiziksel kaynak kullandığını gözlemlemek ve Oracle’nın bu cümlenin DM Time süresini analiz etmek üzere OK tuşuna tıklıyoruz.
5. Bu sorgu için geçen DB Time ve kaynak kullanım oranları aşağıda yer almaktadır.