Teklif Alın +90 533 897 82 11
Power BI 24 Mayıs 2026 · 8 dk okuma

Power BI Performans Optimizasyonu: Yavaş Raporu Hızlandırmanın 10 Yolu

Power BI raporu 30 saniyede açılıyorsa büyük olasılıkla üçünde ciddi bir optimizasyon fırsatı vardır. VertiPaq, DAX, veri modeli ve görsel katmanında somut 10 taktik.

Power BI Performans Optimizasyon DAX
Th🐌 ÖNCE28.4s✨ SONRA3.2s%88daha hızlı3.5xdaha küçük10 OPTİMİZASYON TAKTIĞI✓ Gereksiz sütun sil✓ Yıldız şema✓ Single-direction✓ IF → SWITCH✓ FILTER → KEEPFILTERS✓ Ölçü > sütun✓ Görsel ≤ 12/sayfa✓ Kardinalite azalt✓ Aggregations✓ Incremental refresh

Power BI raporu iki tıkta 30 saniye bekletiyorsa kullanıcı 3 hafta sonra o raporu açmayı bırakır. Yavaşlık, sadece sabır sınavı değil; benimseme (adoption) düşmanıdır. İyi haber şu: yavaş bir raporun %80'inde 3-5 somut iyileştirme, açılış süresini yarıya indirebilir. Bu yazıda VertiPaq motorundan görsel tasarımına kadar 10 pratik optimizasyon tekniğini ele alacağız.

01. Gereksiz Sütunları Model'den Çıkarın

Modele import ettiğiniz her sütun bellekte yer kaplar ve indekslenir. "Belki lazım olur" mantığıyla eklenen sütunlar, sıkıştırılamaz sütunlar veya yüksek kardinaliteli metinlerse (müşteri adı, adres) modeli 3-5 kat şişirir.

İlke: rapor kullanmadığı sütun, model'de olmamalı. Power Query aşamasında elenmeli, hesaplanan tablolara aktarılmamalı.

02. Yüksek Kardinaliteli Sütunları Böl

Tarih-saat sütunu, mikrosaniyeye kadar tutulursa VertiPaq için felakettir. Ayrı tarih (date) ve saat (time) sütunlarına bölerseniz, her ikisi de düşük kardinaliteli olur ve sıkıştırma dramatik artar.

Aynı mantık: tam ondalıklı fiyatlar için 2-3 basamak yeterliyse fazlasını yuvarlayın. Görünmez ama kritik bir bellek kazancı.

03. Ölçü (Measure) Yerine Sütun Hesabı Kullanmayın

DAX'ta hesaplama iki yerde yapılabilir: hesaplanan sütun (calculated column) ve ölçü (measure). Kural: ölçü tercih edilmeli.

Hesaplanan sütun her satır için önden hesaplanır ve modelde tutulur (sıkıştırılamaz, bellek yer). Ölçü, sorgu anında çalışır, filtreye duyarlıdır ve model boyutu artmaz. İstisna: dimension bazlı SLICER için hesaplanan sütun gerekir.

04. IF Zincirlerini SWITCH ile Değiştirin

Ard arda IF() çağrıları hem okunması zor hem hesaplama açısından pahalıdır. SWITCH(TRUE()) yapısı hem daha okunabilirdir hem motor tarafından optimize edilir:

Kötü: IF([A]>10, "H", IF([A]>5, "M", IF([A]>1, "L", "N")))

İyi: SWITCH(TRUE(), [A]>10, "H", [A]>5, "M", [A]>1, "L", "N")

Küçük değişiklik, büyük ölçüler için ölçülebilir hızlanma sağlar.

05. FILTER Yerine KEEPFILTERS Kullanın

Ölçü içinde CALCULATE + FILTER kombinasyonu klasiktir ama FILTER, tablonun tüm satırlarını tarar. Basit karşılaştırmalar için KEEPFILTERS daha verimli:

Kötü: CALCULATE([Sales], FILTER(Products, Products[Category] = "Electronics"))

İyi: CALCULATE([Sales], KEEPFILTERS(Products[Category] = "Electronics"))

Farkı ölçmek için DAX Studio'nun Query Plan aracı kullanılabilir.

06. Yıldız Şema Kurun (Snowflake ve Flat Kaçının)

Yıldız şema, VertiPaq'ın sıkıştırma matematiği için idealdir. Snowflake yavaşlatır; flat model belleği patlatır. Model kurulumunda temel karar budur.

Detayı için Power BI Veri Modeli: Yıldız Şema yazımıza bakabilirsiniz.

07. Bidirectional İlişkilerden Kaçının

İlişkileri iki yönlü yapmak cazip görünür ama sorgu motorunu karmaşık joinlere zorlar. Tek yönlü (single) ilişki, hem daha hızlı hem daha öngörülebilirdir.

Bidirectional gerekli görünen çoğu senaryoda ölçü içinde CROSSFILTER() ile lokal olarak çift yönlü davranış tetiklenebilir; modelde kalıcı bidirectional yapmaya gerek yoktur.

08. Görsel Sayısını Sınırlayın

Bir sayfada 20+ görsel olması, kullanıcı için de sorgu motoru için de yorucudur. Her görsel ayrı bir sorguya dönüşür; ekranda görünen her şey paralel hesaplanır.

Kural: bir sayfada 8-12 görsel optimaldir. Fazlasını alt sayfalara veya drill-through'lara taşıyın.

09. Aggregations Kullanın

Milyar satırlık fact tablonuz varsa bile detay hep gerekmez. Genel görünüm çoğu zaman aylık toplamla yetinir. Aggregations özelliği, sık kullanılan toplamları önden hesaplayıp bellekte tutar; ana fact tablosu yerine bu özet tablodan yanıt üretir.

10x-100x hızlanma mümkündür ama kurulumu dikkat ister; her ölçünün her boyutta doğru şekilde delegate etmesi gerekir.

10. Incremental Refresh Kullanın

Milyonlarca satırlı bir fact tablosunu her yenilemede baştan çekmek gereksizdir. Incremental refresh, sadece son X günün verisini yeniler; eski partition'lar cache'te kalır.

Ay bazlı partition'lu bir tabloda yenileme süresi saat mertebesinden dakikaya iner. Power BI Premium (ve Pro Fabric) lisansı ile kullanılabilir; Power BI Pro'da destek sınırlıdır.

Bu konuda size yardımcı olabiliriz

Power BI çözümümüzü inceleyin

Detaylı bilgi almak için ücretsiz danışmanlık görüşmesi rezervasyonu yapabilirsiniz.

Sayfayı İncele Teklif Alın
Power BI yazıları

Bu Konudaki Diğer Yazılar

Power BI

Power BI Ağustos 2026 Değişiklikleri

1 Ağustos 2026 · 4 dk okuma
Power BI

Power BI Veri Modeli: Yıldız Şema ile Doğru Kurulumun Anatomisi

26 Haziran 2026 · 9 dk okuma
Tüm makaleler