DAX Studio ile DAX Sorgularını Çalıştırmak ve Performansı Ölçmek
Beceri rehberi

DAX Studio ile DAX Sorgularını Çalıştırmak ve Performansı Ölçmek

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

DAX Studio, DAX sorgularını modele doğrudan çalıştırıp süre dökümünü gösteren bağımsız bir araçtır. Modele bağlanmayı, Server Timings çıktısındaki formül ve depolama motoru sürelerini okumayı ve ölçü iyileştirmesini ölçüm döngüsüne bağlamayı anlatır.

Bir bakışta

  1. DAX Studio, Power BI'ın içinde değil, modele dışarıdan bağlanan ayrı bir araçtır. Power BI Desktop, Excel Power Pivot, Azure Analysis Services ve Power BI Premium XMLA uç noktalarına bağlanabilir.
  2. Server Timings, sorgu süresini formül motoru ve depolama motoru olarak ayırır. Toplam süre, depolama motoru süresi, formül motoru süresi, sorgu sayısı ve önbellek isabetleri ayrı gösterilir.
  3. Formül motoru süresi doğrudan ölçülmez, toplamdan depolama süresi çıkarılarak hesaplanır. Bu yüzden yorumlarken değerin türetilmiş olduğu akılda tutulur.
  4. Güvenilir ölçüm, önbellek durumunu bilerek ve tekrarlı yapılır. Önbelleği temizleyerek çalıştırmak, ölçümleri karşılaştırılabilir kılar.
  5. İzleme düğmeleri için sunucu yönetici hakkı gerekir. Yetki yoksa izleme düğmeleri devre dışı kalır; bu durumda ölçümün nasıl yapılacağı baştan planlanmalıdır.

DAX Studio nedir, Performans Analizörü'nden farkı ne?

DAX Studio, DAX sorgularıyla çalışmak için geliştirilmiş bağımsız bir araçtır. Modele bağlanır, yazdığınız DAX sorgusunu çalıştırır, sonucu ve süre bilgisini gösterir. Resmî sitesi, performans iyileştirme için Server Timings, metrik görüntüleme ve karşılaştırmalı ölçüm gibi özelliklerini öne çıkarır. Bağlanabileceği veri modelleri arasında Excel için Power Pivot, Power BI Desktop, Azure Analysis Services ve Power BI Premium XMLA uç noktaları sayılır.

Power BI içindeki Performans Analizörü, rapor sayfasındaki görsellerin süresini ölçer. DAX Studio ise tek bir sorguya ya da ölçüye inip sunucu tarafında zamanın nerede geçtiğini gösterir. İkisi birbirini tamamlar: yavaş görseli bulmak için birincisi, yavaşlığın nedenini çözümlemek için ikincisi kullanılır. Performans Analizörü hakkında ayrıntı için ilgili rehbere bakılabilir; bu sayfada yalnız DAX Studio anlatılır.

Araç, DAX öğrenirken de işe yarar. Bir ölçüyü rapor sayfasına bağlı olmadan, kendi başına çalıştırıp sonucunu görmek hata ayıklamayı kolaylaştırır.

Bağlanmak ve ilk sorguyu çalıştırmak

Araç açıldığında önce bir veri modeline bağlanılır. Bağlan düğmesi bağlantı iletişim kutusunu açar; açık bir Power BI Desktop dosyası genellikle yerel bir model olarak seçilebilir. Bağlantıyı değiştirmek ve model değişince meta veriyi yenilemek için şeritte ilgili düğmeler vardır.

Sorgu, EVALUATE ifadesiyle başlayan bir tablo ifadesidir. Kurgusal bir modelde bir ölçüyü kategoriye göre sorgulamak için şuna benzer bir sorgu yazılır:

DEFINE MEASURE Satis[Toplam Tutar] = SUM(Satis[Tutar]) EVALUATE SUMMARIZECOLUMNS(Urun[Kategori], "Toplam", [Toplam Tutar])

DEFINE bloğu, ölçüyü yalnız bu sorgu için tanımlamanızı sağlar. Böylece modeldeki ölçüye dokunmadan alternatif yazımları aynı sorguda karşılaştırabilirsiniz. Çalıştır düğmesi, resmî tanıma göre önbelleği temizleyip sorguyu tek adımda çalıştırabilir; bu, tekrarlı ölçümlerde tutarlılık için faydalıdır.

Kaynak model bir Power BI hizmet modeliyse bağlantı için kurumun XMLA uç noktasını açık bırakması gerekir; bu yönetici ayarıdır ve araçtan değil kiracı ayarından gelir.

Server Timings: süre nerede geçiyor?

Server Timings düğmesi, sunucu tarafındaki ayrıntılı süre bilgisini açar ve bir sekme ekler. Sonuç, istemcinin değil sunucunun gördüğü süreyi gösterir. Standart çıktı penceresindeki süre ise ağ hızı ve sonuç kümesinin büyüklüğünden etkilenebilir.

Sekmedeki başlıca değerler şunlardır:

  • Toplam: Sunucunun sorgu için harcadığı süre; istemcinin sonucu işlemesi dahil değildir.
  • SE: Depolama motoru sorgularının sürelerinin toplamı.
  • FE: Formül motoru süresi; doğrudan ölçülmez, toplamdan SE çıkarılarak bulunur.
  • SE CPU: Depolama motoru olaylarının işlemci süresi; araç belgesine göre bu değer her zaman güvenilir olmayabilir.
  • SE Sorguları: Depolama motoruna giden istek sayısı.
  • SE Önbelleği: Önbellek isabetlerinin sayısı.

Belgeye göre mümkün olan, işi depolama motoruna kaydırmaktır, çünkü depolama motoru çok iş parçacıklıdır ve paralel çalışabilir; formül motoru ise tek iş parçacıklıdır. Yine de bir sorgu tamamen depolama motorunda çalışamaz: istekleri formül motoru gönderir ve sonucu istemciye göndermek için seri hale getirir. Tarama olaylarındaki xmSQL metni, depolama motorunun işini anlamaya yardım eder ama çalıştırılamaz.

Şekil 1

Formül motoru tek iş parçacıklı, depolama motoru paralel çalışabilir

Motorların karşılaştırması

Formül motoru (FE)Depolama motoru (SE)
GörevFormülü yorumlar, istek gönderir, sonucu hazırlarVeriyi tarar ve toplulaştırır
Çalışma biçimiTek iş parçacıklıÇok iş parçacıklı, paralel çalışabilir
Sürenin bulunmasıToplamdan SE çıkarılarak hesaplanırSE sorgu sürelerinin toplamıdır
İyileştirme yönüMümkünse iş SE'ye kaydırılırİstek sayısı ve taranan veri azaltılır
Kaynak: DAX Studio belgeleri: Server Timings izlemeMindset Institute

Query Plan ve Tüm Sorgular: ek görünümler

Şeritte Server Timings'in yanında başka izleme seçenekleri de bulunur. Query Plan düğmesi, sorgu planı bilgisini açar ve motorun sorguyu nasıl yürüttüğünü gösterir; ayrıntılı bir okuma gerektirdiğinden önce Server Timings ile yön bulup sonra plana inmek verimlidir. Tüm Sorgular düğmesi ise bağlı veri kaynağına gelen bütün sorguları izler; Excel ya da Power BI gibi diğer istemcilerden gelenleri de yakalar. Bir rapor sayfasının gerçekte hangi sorguları ürettiğini görmek için yararlıdır.

Bu özelliklerin hepsi yönetici hakkı ister. Yetkiniz yoksa düğmeler devre dışı kalır; bu durumda ölçüm, istemci tarafı süre ve model kopyası üzerinde yerel çalışma ile sınırlı kalır. Kurumsal bir ortamda bu hakkı kimin verdiği ve hangi modellerde verileceği önceden belirlenmelidir.

Ölçüm döngüsü: ölç, değiştir, yeniden ölç

Performans iyileştirmesinde en sık yapılan hata, sezgiyle değiştirip hissederek karşılaştırmaktır. DAX Studio ile döngü ölçüm temellidir. Yavaş sorguyu ya da ölçüyü alıp önbelleği temizleyerek çalıştırırsınız. Server Timings'i okur, zamanın FE'de mi SE'de mi geçtiğine ve SE sorgu sayısına bakarsınız. Yazımı değiştirir (örneğin tekrar eden bir hesaplamayı değişkene almak, ya da gereksiz bir yineleyiciyi sadeleştirmek) ve aynı koşulda yeniden ölçersiniz. İyileşme varsa kalıcı hale getirir, yoksa değişikliği geri alırsınız.

Yorum için basit yönlendirmeler şunlardır: Formül motoru süresi baskınsa genellikle ölçü mantığını ve yineleyici kullanımını gözden geçirmek gerekir. Depolama motoru süresi ya da sorgu sayısı yüksekse model yapısı, sütun seçimi ve taranan veri miktarı incelenir. Bunlar kesin kurallar değil başlangıç ipuçlarıdır; her model kendi ölçümünü gerektirir.

Şekil 2

Her değişiklik aynı koşulda yeniden ölçülür

Ölçüm döngüsü

  1. Önbelleği temizleyerek çalıştırSorguyu tutarlı başlangıç koşuluyla çalıştırın.
  2. Server Timings'i okuFE, SE, SE sorgu sayısı ve önbellek isabetine bakın.
  3. Yazımı değiştirTek seferde tek değişiklik yapın.
  4. Aynı koşulda yeniden ölçİyileşmeyi sayıyla doğrulayın, yoksa geri alın.
Kaynak: sayfa içeriğiMindset Institute

Sık yapılan hatalar

DAX Studio ölçümlerinde hatalar genellikle yöntemden gelir:

  • Tek ölçümle karar vermek: Önbellek, sistem yükü ve ağ süreyi oynatır. Aynı koşulda birkaç kez ölçmek güveni artırır.
  • Önbellek durumunu bilmemek: Sıcak önbellekle alınan süre soğuk durumu yansıtmaz. Karşılaştırmalarda aynı başlangıç koşulunu kullanın.
  • Çıktı penceresi süresi ile sunucu süresini karıştırmak: İlki ağdan ve sonuç büyüklüğünden etkilenir. Sunucu davranışı için Server Timings'e bakın.
  • SE CPU değerine fazla güvenmek: Belge bu değerin her zaman güvenilir olmayabileceğini belirtir.
  • Aynı anda birden çok değişiklik yapmak: Hangisinin iyileştirdiğini bilemezsiniz.
  • Yönetici hakkı olmadan izleme beklemek: Düğmeler devre dışı kalır; önce yetkiyi ve ortamı netleştirin.
  • Üretim modelinde denemek: Kopya modelde çalışmak hem güvenli hem tekrarlanabilirdir.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Mindset kataloğundaki Power BI İleri Düzey ve DAX programı, DAX diline derinlemesine giriş, CALCULATE ve filtre bağlamı, zaman zekası, hesaplama grupları ve ileri kalıplar ile performans optimizasyonu başlıklarını kapsar. Yavaş çalışan ölçüleri ölçüm temelli iyileştirmek isteyen Power BI geliştiricileri ve veri analistleri için uygundur.

İlgili Mindset programı

Power BI İleri Düzey ve DAX

Sık sorulanlar

Sık sorulan sorular

DAX Studio'yu kullanmak için Power BI Desktop gerekir mi?

Kolay başlangıç için açık bir Power BI Desktop dosyasına bağlanmak yaygındır. Ancak araç Excel için Power Pivot, Azure Analysis Services ve Power BI Premium XMLA uç noktalarındaki modellere de bağlanabilir. Hangi modele bağlandığınıza göre izleme özelliklerinin kullanılabilirliği, yönetici hakkı gibi koşullara bağlı olarak değişebilir.

Server Timings düğmeleri neden pasif görünüyor?

Araç belgesi, izlemenin sunucu yönetici hakkı gerektirdiğini belirtir. Bu hak olmayan bağlantılarda izleme düğmeleri devre dışı kalır. Yerel bir Power BI Desktop modelinde genellikle bu sorun yaşanmaz; hizmet üzerindeki modellerde ise yetki ve ayar gerekebilir.

FE ve SE süresinden hangisi düşük olmalı?

Belgenin önerisi, mümkün olduğunca işi depolama motoruna kaydırmaktır, çünkü o paralel çalışabilir. Yine de her sorguda FE payı olacaktır. Amaç tek bir oran hedeflemek değil, toplam süreyi ve gereksiz depolama motoru sorgularını azaltmaktır; bu da ölçümle doğrulanır.

xmSQL sorgusunu veri kaynağında çalıştırabilir miyim?

Hayır. xmSQL, formül motorunun depolama motoruna gönderdiği isteklerin SQL benzeri gösterimidir ve çalıştırılamaz. Yalnız depolama motorunun ne yaptığını anlamaya yarar. DirectQuery modunda ise veri kaynağına giden genel bir T-SQL sorgusu görürsünüz.

Ölçüm değiştirmeden alternatif yazımı nasıl denerim?

Sorguda DEFINE bloğu ile ölçüyü yalnız o sorgu için yeniden tanımlayabilirsiniz. Model ölçüsüne dokunmadan farklı yazımları aynı koşulda çalıştırıp Server Timings çıktılarını karşılaştırabilirsiniz. İyileşen yazımı sonra modele taşırsınız.

DAX Studio Kullanımı: Sorgu Performansını Ölçmek