DAX Performansı Nasıl Artırılır?

DAX performansını artırmak, yalnızca daha kısa formül yazmak anlamına gelmez. Yavaş bir raporda sorunun DAX ifadesinden mi, veri modelinden mi, görselden mi veya veri kaynağından mı kaynaklandığı önce belirlenmelidir.

Önce darboğazı ölçün

Power BI Performance Analyzer ile hangi görselin ne kadar sürede çalıştığını inceleyin. Gerektiğinde DAX Studio gibi araçlarla sorgu davranışı daha ayrıntılı incelenebilir.

Veri modelini kontrol edin

Gereksiz tablolar, yüksek kardinaliteli alanlar ve karmaşık ilişkiler DAX hesaplamalarının üzerinde çalıştığı modeli büyütebilir.

Gereksiz iterator kullanmayın

Mevcut bir sütun doğrudan toplanabiliyorsa SUM gibi daha doğrudan bir fonksiyon yeterli olabilir. Satır bazlı ifade gerektiğinde SUMX gibi iterator kullanılır.

FILTER kullanımını değerlendirin

FILTER güçlüdür; ancak büyük tabloları gereksiz yere satır bazında değerlendirmekten kaçınmak gerekir.

CALCULATE bağlamını anlayın

CALCULATE’ın filtre ekleme veya değiştirme davranışını anlamadan yapılan optimizasyonlar yanlış sonuç üretebilir.

Tekrarlanan hesaplamaları azaltın

Değişkenler ve modüler ölçüler hem okunabilirliği hem de bazı senaryolarda hesaplama yaklaşımını iyileştirebilir.

Rapor tasarımını unutmayın

Aynı anda çok sayıda görselin aynı ölçüleri çalıştırması toplam sorgu yükünü artırabilir.

SQL ve veri kaynağını kontrol edin

Özellikle DirectQuery senaryolarında kaynak veritabanının performansı rapor deneyiminin önemli bir parçasıdır.

Uygulama: aynı sonucu koruyarak filtreyi daraltmak

Optimizasyona başlamadan önce rapordaki yavaş etkileşimi tanımlayın: hangi sayfa, hangi dilimleyici ve hangi görsel? Performance Analyzer kaydını başlatıp aynı etkileşimi tekrar edin. DAX sorgu süresi ile görselin çizim süresini ayırın. Aşağıdaki örnek, ürün kategorisine göre satış hesaplayan iki yaklaşımı karşılaştırmak içindir; her modelde aynı hız kazancını garanti etmez.

Toplam Satış = SUM(Satis[Tutar])

Elektronik Satış FILTER =
CALCULATE(
    [Toplam Satış],
    FILTER(
        VALUES(Urun[Kategori]),
        Urun[Kategori] = "Elektronik"
    )
)

Elektronik Satış Sütun Filtresi =
CALCULATE(
    [Toplam Satış],
    KEEPFILTERS(Urun[Kategori] = "Elektronik")
)

Burada KEEPFILTERS, ilk ölçüdeki mevcut kategori seçimiyle kesişim mantığını korur. Kaldırılırsa formül daha kısa görünse bile Mobilya seçildiğinde sonuç değişebilir. Her iki ölçüyü seçimsiz, Elektronik seçili ve başka kategori seçili durumlarda karşılaştırın. Daha sonra aynı görselde ve aynı filtrelerle süre ölçün. Tek bir çalıştırmanın önbellek etkisini genel performans sonucu olarak sunmayın.

Önce ve sonra için kontrol listesi

Ölçünün detay satırlarını, ara toplamlarını ve genel toplamını karşılaştırın. Yüksek kardinaliteli metin sütunlarını, gereksiz çift yönlü ilişkileri ve çok fazla görselin aynı anda sorgu üretmesini inceleyin. Import modelinde gereksiz sütunları azaltmak model boyutunu küçültebilir; DirectQuery modelinde kaynak sorgusu ve veritabanı planı ayrıca incelenmelidir. Değişkenler okunabilirliği artırır ancak yanlış bağlamda hesaplanmış bir değeri tekrar kullanmak sonuçları bozabilir. Süre ve sonuç doğruluğunu birlikte kaydedin.

Sonuç

Power BI’da DAX konusunda başarılı olmak, yalnızca fonksiyonları ezberlemekten çok veri modelini ve hesaplama bağlamını anlamayı gerektirir. Gerçek projelerde doğru DAX; doğru model, doğru veri kaynağı ve doğru rapor tasarımıyla birlikte ele alındığında daha sürdürülebilir sonuç verir.

Sık Sorulan Sorular

DAX performansı neden düşer?

Karmaşık hesaplamalar, gereksiz veri taramaları, model tasarımı, iterator kullanımı ve rapor sorgu yükü gibi farklı nedenler olabilir.

Performance Analyzer yeterli mi?

İlk teşhis için çok faydalıdır; daha derin DAX motoru ve sorgu analizi gerektiğinde ek araçlar kullanılabilir.

DAX optimizasyonuna nereden başlanmalı?

Önce yavaşlığın nerede olduğunu ölçmek, sonra model, ölçü ve görsel katmanlarını sırayla incelemek en sağlıklı yaklaşımlardan biridir.

Danışmanlık

Power BI raporlarınızda DAX, veri modeli veya performans sorunları yaşıyorsanız mevcut yapınızı inceleyerek raporlama mimarisi, DAX optimizasyonu ve performans analizi konusunda danışmanlık desteği alabilirsiniz.

Kaynak

Microsoft Learn: performance-analyzer · Microsoft Learn: star-schema · Microsoft Learn: dax-avoid-avoid-filter-as-filter-argument

Metin SEVİNDİK | İş Zekası ve Veri Danışmanlığı

Power BI ve DAX danışmanlığı için iletişime geçin.

DAX serisinde okumaya devam edin

DAX Nedir, Nasıl Çalışır, Zor mu? · CALCULATE Nasıl Çalışır? · ALL, ALLEXCEPT ve REMOVEFILTERS Arasındaki Farklar