İlişkisel Veritabanı Sorgularının Performansını Ayarlama

Birçok müşteri veri ambarı uygulamalarında performans sorunları yaşıyor. Bazı durumlarda Oracle Analitik tarafından oluşturulan SQL sorgularının analizi karmaşıktır. Bu konu, Oracle Analitik tarafından oluşturulan SQL sorgularından kaynaklanabilecek performans sorunlarının nasıl analiz edileceği ve en aza indirileceği konusunda yönergeler sağlar.

Bu konu, ağınızdaki, tarayıcınızdaki veya rapor sunumundaki sorunlardan kaynaklanan performans sorunlarını kapsamaz.

Oracle Analitik için Sorgu günlüğünü Analiz Etme (Kayıt Düzeyi 3 Gereklidir)

Bu günlüğü bulma veya içeriği anlama hakkında bilgi için bkz. Sorgu Günlüklerini Toplama ve Analiz Etme.

  1. Sorgunuzun Oracle Analitik'te geçirdiği süreyi veritabanında harcanan zamanla (yani yanıt süresi ile fiziksel sorgu süresini) karşılaştırın. Normalde Oracle Analitik’te harcanan süre birkaç saniyeyi geçmez.
  2. Yanıt süresi birkaç saniyeden uzunsa nedenini bulmak için Oracle Analitik'te uygulanan adımları ayrı olarak analiz edin (kayıt düzeyi 5 gereklidir).

Fiziksel SQL Sorgusunu Analiz Etme

  1. Sorguda bulunan tüm tabloların gerekli olup olmadığını kontrol edin. Birleştirilmiş ancak SELECT yan tümcesinde yer almayan ve hiçbir bir filtre uygulanmamış (gerçek filtreler, birleştirme koşulları değil) tabloları arayın.
  2. Kaç adet fiziksel sorgu ve alt sorgunun oluşturulduğunu belirleyin. Daha doğru bir ifadeyle sorgunun bir bilgi tablosunu okuma sayısı. Her şey yolunda gittiğinde sorgu tek bir bilgi tablosunu sadece bir kez okur. Birden fazla bilgi tablosu olduğunda bunun nedenini öğrenin ve bazılarını kaldırıp kaldıramayacağınıza bakın.
  3. Hariç tutulan sütunları ve ekleme olmayan toplama kurallarını (REPORT_AGGREGATE, count(distinct)...), seçim adımlarını, rapordaki alt sorguyu, küme işleçlerini (UNION), toplamları, alt toplamları, birden fazla görünümü ve daha fazlasını kontrol edin.
  4. Dış birleştirme olup olmadığını kontrol edin. Bunların nereden geldiğini ve bazılarını tasarımı değiştirerek kaldırıp kaldıramayacağınızı keşfedin.

Yürütme Planını Analiz Etme

SQL sorgusunu optimize etmek yeterli değilse performans sorununuzun temel nedenini bulmak için yürütme planını analiz edin. Veritabanı yöneticinizden yardım isteyin. Bu noktada performansı artırmanın dört ana yolu vardır:
  1. Veri erişim dizin yollarını (dizinler) iyileştirerek giriş/çıkış çağrılarının hacmini azaltın.
  2. Okunan veri hacmini azaltarak giriş/çıkış çağrılarının hacmini azaltın. Örneğin uygulanan filtreleri veya veri modeli yapısını gözden geçirebilirsiniz (sonraki bölüme bakın).
  3. Paralelliği (büyük tabloları okumak için kullanılan iş parçası sayısı) artırın.
  4. Giriş/çıkış çağrısı hızını artırın (altyapı iyileştirmeleri, bellek içi veritabanı vb.).

Okunan Veri Hacmini Azaltmak İçin Veri Modelini Gözden Geçirme ve İyileştirme

  1. Birleştirme tabloları oluşturun.
  2. Parçalara ayırmayı kullanın.

    Örneğin, kullanıcılar çoğunlukla geçerli Yıl, Üç Aylık Dönem veya Aydan veri seçiyorsa, bilgiyi iki tabloya bölebilirsiniz: geçerli ve arşiv. Oracle veritabanında bölümlemeyi de kullanabilirsiniz.

  3. Denormalizasyon kullanın (birleştirme sayısını azaltmak için).
  4. Sütun sayısını azaltmak için tabloları bölün.

    Okunan veri hacmi sadece her tablodaki satır sayısına bağlı değildir. Tablonun hacmi, sütunlarının sayısına ve boyutuna da bağlıdır. Örneğin 500 sütunlu büyük bir tabloyu, bir tablo en sık kullanılan 50 sütunu, diğeri ise nadiren kullanılan geri kalan 450 sütunu içerecek şekilde iki tabloya bölebilirsiniz.

Oracle Analitik'teki birçok performans sorunu zayıf tasarımdan kaynaklanır çünkü bu, idealin altında SQL sorgularının oluşturulmasına neden olur. Tasarımı değiştirerek Oracle Analitik'in oluşturduğu SQL sorgularını iyileştirebilirsiniz. Bunun sadece raporlarınızın performansı üzerinde değil, aynı zamanda veritabanında kullanılan kaynak miktarı üzerinde de büyük bir etkisi olabilir.