28 Aralık 2010 Salı

Enterprise Manager / SQL Tuning Advisor ve V$SQL

Selamlar,

Bugün iş, yüksek lisans derken biraz kendime vakit ayırabildim ve birçok giriş yapma fırsatı buldum. Bu şekilde yeni makale girişleri yapabildiğim için açıkçası çok memnunum. Umarım okuyan insanlar için faydalı olmuştur.

"SQL Tuning Advisor" olarak bildiğimiz aracın, Enterprise Manager aracılığı ile nasıl koşturulacağını göstermek istiyorum. Öncelikle EM'ye giriş yapıyoruz;


Ardından "Performance" sekmesine geçiyoruz;


"Additional Monitoring Links" kısmından "Top Activity" tuşuna tıklıyoruz ve veritabanı üzerindeki aktivitelere bakıyoruz;


Ekranın sol altındaki grupta yer alan işlemlerden bir veya birkaç tanesini seçerek "Schedule SQL Tuning Advisor"a tıklıyoruz. Karşımıza çıkan ekranda talep ettiğimiz işlemin nasıl ve ne zaman yapılacağı gösterilmekte. Detaylı bilgiye sahip olabilmek için "Scope"u "Comprehensive" olarak seçiyoruz ve "Schedule"ı da "Immediately" yani hemen olarak işaretliyoruz. İsterseniz bu işlem için Oracle'ın tanımladığının dışında da bir isim verebilirsiniz;


Ardından karşınıza aşağıdaki şekilde bir çalışma ekranı gelecek. Bu ekran seçtiğiniz sorgunun veya sorguların karmaşıklığına göre çok kısa da sürebilir uzun da.


Karşımıza gelen sonuç ekranında Oracle'ın bize tavsiye ettiği değişiklikleri görmekteyiz;


Tavsiye ettiği değişiklikler, indeks yaratmak, istatistik toplamak veya yeni bir SQL profili oluşturarak, ilgili sorgunun hangi çalıştırma planı kullanacağını belirlemek olabilir. Bir tanesini seçiyoruz ve devam ediyoruz. Örneğin istatistikleri toplayalım (Implement tuşuna basıyoruz);


"Immediately" seçeneğini seçebilir veya başka bir zamana ayarlayabiliyoruz ve buna ek olarak "Show SQL" tuşuna bastığımızda ise aslında Oracle'ın bizim için ne yaptığını görebiliyoruz. "OK" tuşuna basarak devam ediyoruz ve sonuca ulaşıyoruz;


Bir de SQL Profili ekleme durumuna bakalım. "View Recommendations" tuşuna tıklayarak devam ediyoruz;


"SQL Profile" seçip "Implement" tuşuna basmadan önce yeni planın nasıl olacağına bir göz atalım. Bunu yapabilmek içinse yukarıdaki ekran görüntüsündeki gözlüğe :) tıklıyoruz;


Solda oluşturulacak yeni planı, sağda ise şu anda geçerli planı görmekteyiz. Bir önceki ekrana geri dönüyoruz ve tekrar SQL Profile'ı seçip Implement tuşuna basıyoruz;


Yukarıda da gördüğünüz gibi yeni profilimiz oluşturuldu. SQL Tuning Advisor eğer bizden bir indeks yaratarak bize sağlayacağı faydayı gösterseydi, indeks yaratmayı da düşünebilirdik. Sonuçta geçeceğimiz yol aynı olacak ve Oracle bizim için yaratmak istediği indeksi yaratacaktır. Oracle'ın burada talep ettiği indeksleri ben şiddetle yaratmanızı tavsiye ediyorum (tabii yeterli fiziksel alanınız varsa) çünkü gerçekten ciddi boyutlarda fayda sağlayabiliyor. Başınıza dert olan bir sorgudan (kötü performans gösteren) kısa sürede sizi kurtaracak sonuçları önünüze serebiliyor. İndeks yaratmak da bunlardan yalnızca biri.

"Top Activity" kısmında gördüğünüz SQL'lere de bağlı kalmak zorunda değilsiniz. V$SQL görüntüsü içerisindeki "SQL_ID" sütununa ait bilgi üzerinden de hangi sorgunun "SQL Tuning Advisor" tarafından kontrol edilmesini istediğinizi Enterprise Manager'a söyleyebilirsiniz.

İyi akşamlar.

Ogan

Hiç yorum yok:

Takip et: @oganozdogan