Performansı ve sorun gidermeyi geliştirmek için değişkenleri kullanma
Daha az karmaşık ve daha fazla verimli hesaplamalar yazmanıza yardımcı olması için DAX formüllerinizdeki değişkenleri kullanabilirsiniz. Değişkenler, Power BI Desktop’ı kullanmaya başlayan geliştiriciler tarafından kapasitesinin altında kullanılmaktadır, ancak bunlar etkilidir ve ölçüler oluştururken varsayılan olarak bunları kullanmanız gerekir.
Bazı ifadeler, iç içe geçmiş işlevlerin kullanımını ve ifade mantığının yeniden kullanımını içerir. Bu ifadelerin işlenmesi daha uzun sürer ve okunması, dolayısıyla da sorunlarının giderilmesi zordur. Değişkenler kullanıyorsanız sorgu işleme süresini kaydedebilirsiniz. Bu değişiklik, bir anlam modelinin performansını iyileştirmeye yönelik doğru yönde bir adımdır.
Anlam modelinizde değişkenlerin kullanılması aşağıdaki avantajları sağlar:
Gelişmiş performans - Değişkenler, Power BI’ın aynı ifadeyi birden çok defa değerlendirmesi gereksinimini ortadan kaldırdığından, ölçüleri daha verimli hale getirebilir. Bir sorgunun aynı sonuçlarını, önceki işleme süresinin neredeyse yarısı sürede alabilirsiniz.
Gelişmiş okunabilirlik - Değişkenlerin kendiliğinden açıklayıcı kısa adları vardır ve belirsiz, çok sözcüklü bir ifade yerine bu adlar kullanılır. Değişkenler kullanıldığında formüllerin daha kolay okunduğunu ve anlaşıldığını fark edebilirsiniz.
Daha kolay hata ayıklama - Bir formülün ve test ifadelerinin hatalarını ayıklamak için değişkenleri kullanabilirsiniz; bu, sorun giderme sırasında yardımcı olabilir.
Daha az karmaşıklık - Değişkenler, anlaşılması zor olan EARLIER veya EARLIEST DAX işlevlerinin kullanılmasını gerektirmez. Değişkenler sunulmadan önce bu işlevler gerekiyordu ve yeni filtre bağlamları sunan karmaşık ifadelerle yazılıyordu. Artık bu işlevler yerine değişkenleri kullanabildiğiniz için daha az karmaşık formüller yazabilirsiniz.
Performansı artırmak için değişkenleri kullanma
Bir ölçüyü daha verimli hale getirmek için nasıl değişken kullanabileceğinizi göstermek için aşağıdaki tabloda ölçü tanımı iki şekilde görüntülenmektedir. Formülde, “geçen seneki aynı dönemi” hesaplayan ifadenin yinelendiğini, ancak iki farklı şekilde bunun yapıldığını fark edeceksiniz: birinci örnekte normal DAX hesaplama yöntemi kullanılırken, ikinci örnekteyse hesaplamada değişkenler kullanılmaktadır.
Tablonun ikinci satırında, gelişmiş ölçü tanımını gösterilmektedir. Bu tanım, SalesPriorYear adlı bir değişken sunmak için VAR anahtar sözcüğünü kullanmakta ve “geçen seneki aynı dönem” sonucunu bu yeni değişkene atamak için bir ifade kullanmaktadır. Ardından DIVIDE ifadesinde değişkenini iki kez kullanır.
Değişken olmadan
Sales YoY Growth =
DIVIDE (
( [Sales] - CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) ),
CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
)
Değişken ile
Sales YoY Growth =
VAR SalesPriorYear =
CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
VAR SalesVariance =
DIVIDE ( ( [Sales] - SalesPriorYear ), SalesPriorYear )
RETURN
SalesVariance
Tablodaki ilk ölçü tanımında formül, Power BI’ın aynı ifadeyi iki defa değerlendirmesini gerektirdiğinden verimsizdir. İkinci tanım daha verimlidir çünkü değişken nedeniyle Power BI'ın PARALLELPERIOD ifadesini yalnızca bir kez değerlendirmesi gerekir.
Semantik modelinizde birden çok ölçü içeren birden çok sorgu varsa, değişkenlerin kullanımı genel sorgu işleme süresini yarıya indirip anlam modelinin genel performansını artırabilir. Üstelik bu çözüm basit bir işlemdir; formüller daha karmaşık hale geldiğinde, örneğin, yüzdelerle ve hareketli toplamlarla uğraşırken ne kadar kolaylık elde edileceğini düşünün.
Okunabilirliği artırmak için değişkenleri kullanma
Gelişmiş performansa ek olarak, değişken kullanımının kodun okunmasını ne kadar kolaylaştırdığını fark edebilirsiniz.
Değişkenler kullanıldığında, değişkenler için açıklayıcı adlar kullanılması iyi bir uygulamadır. Önceki örnekte, değişken SalesPriorYear olarak adlandırılıp net olarak değişkenin hesaplama yaptığını belirtiyordu. X, temp veya variable1 gibi bir değişken kullanmanın sonucunu düşünün; değişkenin amacı açık ve anlaşılır olmayacaktır.
Net, kısa ve anlamlı adlar kullanmanız, neyi hesaplamaya çalıştığınızı anlamanızı kolaylaştırır ve diğer geliştiricilerin gelecekte raporu korumasını çok daha kolay hale getirir.
Birden çok adımın sorununu gidermek için değişkenleri kullanma
Bir formülün hatasını ayıklamanıza ve sorunun ne olduğunu belirlemenize yardımcı olması için değişkenleri kullanabilirsiniz. Değişkenler, her bir değişkeni ayrı olarak değerlendirip RETURN ifadesinden sonra bu değişkenleri çağırarak DAX hesaplamanızın sorunlarını giderme görevinin kolaylaştırılmasına yardımcı olur.
Aşağıdaki örnekte, bir değişkene atanan bir ifadeyi test edersiniz. Hata ayıklamak için değişkene yazmak üzere RETURN ifadesini geçici olarak yeniden yazın. Ölçü tanımı yalnızca SalesPriorYear değişkenini döndürür çünkü RETURN ifadeden sonra gelen budur.
Sales YoY Growth % =
VAR SalesPriorYear = CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN SalesPriorYear%
RETURN ifadesi yalnızca SalesPriorYear% değerini görüntüler. Bu teknik, hata ayıklamayı tamamladığınızda ifadeyi geri döndürmenize olanak sağlar. Ayrıca, DAX kodunun karmaşıklığının azalması sayesinde hesaplamaların anlaşılmasını da kolaylaştırır.