Menggunakan variabel untuk meningkatkan performa dan pemecahan masalah

Selesai

Anda dapat menggunakan variabel dalam rumus DAX untuk membantu Anda menulis penghitungan yang tidak terlalu rumit dan lebih efisien. Variabel tidak terlalu dimanfaatkan oleh pengembang yang memulai di Power BI Desktop, tetapi variabel tersebut efektif dan Anda harus menggunakannya secara default saat Anda membuat pengukuran.

Beberapa ekspresi melibatkan penggunaan banyak fungsi berlapis dan penggunaan kembali logika ekspresi. Ekspresi ini membutuhkan waktu lebih lama untuk diproses dan sulit dibaca dan, oleh karena itu, selesaikan masalah ini. Jika Anda menggunakan variabel, Anda dapat menghemat waktu pemrosesan kueri. Perubahan ini adalah langkah ke arah yang tepat menuju pengoptimalan performa model semantik.

Penggunaan variabel dalam model semantik Anda memberikan keuntungan berikut:

  • Meningkatkan performa - Variabel dapat membuat pengukuran lebih efisien karena menghapus kebutuhan Power BI untuk mengevaluasi ekspresi yang sama beberapa kali. Anda dapat mencapai hasil yang sama dalam kueri dalam waktu sekitar setengah dari waktu pemrosesan yang asli.

  • Meningkatkan keterbacaan - Variabel memiliki nama pendek yang menggambarkan diri sendiri dan digunakan sebagai pengganti ekspresi beberapa kata yang ambigu. Anda mungkin akan lebih mudah membaca dan memahami rumus saat variabel digunakan.

  • Penelusuran kesalahan yang disederhanakan - Anda dapat menggunakan variabel untuk men-debug formula dan menguji ekspresi, yang dapat membantu selama pemecahan masalah.

  • Mengurangi kompleksitas - Variabel tidak memerlukan penggunaan fungsi EARLIER atau EARLIEST DAX, yang sulit dipahami. Fungsi-fungsi ini diperlukan sebelum variabel diperkenalkan, dan ditulis dalam ekspresi kompleks yang memperkenalkan konteks filter baru. Sekarang Anda dapat menggunakan variabel, bukan fungsi tersebut, Anda dapat menulis lebih sedikit rumus yang kompleks.

Menggunakan variabel untuk meningkatkan performa

Untuk mengilustrasikan bagaimana Anda dapat menggunakan variabel untuk membuat ukuran lebih efisien, tabel berikut menampilkan definisi pengukuran dengan dua cara yang berbeda. Perhatikan bahwa rumus mengulangi ekspresi yang menghitung "periode yang sama tahun lalu" tetapi dengan dua cara berbeda: instans pertama menggunakan metode perhitungan DAX normal dan yang kedua menggunakan variabel dalam perhitungan.

Baris kedua tabel memperlihatkan definisi pengukuran yang ditingkatkan. Definisi ini menggunakan kata kunci VAR untuk memperkenalkan variabel bernama SalesPriorYear, dan menggunakan ekspresi untuk menetapkan hasil "periode yang sama tahun lalu" ke variabel baru tersebut. Kemudian menggunakan variabel dua kali dalam ekspresi DIVIDE.

Tanpa variabel

Sales YoY Growth =
DIVIDE (
    ( [Sales] - CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) ),
    CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
)

Dengan variabel

Sales YoY Growth =
VAR SalesPriorYear =
    CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
VAR SalesVariance =
    DIVIDE ( ( [Sales] - SalesPriorYear ), SalesPriorYear )
RETURN
    SalesVariance

Dalam definisi pengukuran pertama dalam tabel, rumus tidak efisien karena memerlukan Power BI untuk mengevaluasi ekspresi yang sama dua kali. Definisi kedua lebih efisien karena, karena variabel, Power BI hanya perlu mengevaluasi ekspresi PARALLELPERIOD sekali.

Jika model semantik Anda memiliki beberapa kueri dengan beberapa pengukuran, penggunaan variabel dapat memotong waktu pemrosesan kueri secara keseluruhan menjadi dua dan meningkatkan performa keseluruhan model semantik. Selain itu, solusi ini adalah yang sederhana; bayangkan penghematan saat rumus menjadi lebih rumit, misalnya, ketika Anda berhadapan dengan persentase dan menjalankan total.

Menggunakan variabel untuk meningkatkan keterbacaan

Selain performa yang ditingkatkan, Anda mungkin menyadari bagaimana penggunaan variabel membuat kode lebih mudah dibaca.

Saat menggunakan variabel, praktik terbaik adalah menggunakan nama deskriptif untuk variabel. Dalam contoh sebelumnya, variabel disebut SalesPriorYear, yang dengan jelas menyatakan variabel apa yang dihitung. Pertimbangkan hasil penggunaan variabel yang disebut X, temp atau variabel1; tujuan variabel tidak akan jelas sama sekali.

Menggunakan nama yang jelas, ringkas, dan bermakna akan membantu mempermudah Anda untuk memahami apa yang ingin Anda hitung, dan akan jauh lebih sederhana bagi pengembang lain untuk mempertahankan laporan di masa depan.

Menggunakan variabel untuk memecahkan masalah beberapa langkah

Anda dapat menggunakan variabel untuk membantu Anda mendebug rumus dan mengidentifikasi masalahnya. Variabel membantu menyederhanakan tugas pemecahan masalah penghitungan DAX Anda dengan mengevaluasi setiap variabel secara terpisah dan dengan memanggil variabel kembali setelah ekspresi RETURN.

Dalam contoh berikut, Anda menguji ekspresi yang ditetapkan ke variabel. Untuk men-debug, Anda menulis ulang ekspresi RETURN untuk menulis ke variabel untuk sementara waktu. Definisi pengukuran hanya mengembalikan variabel SalesPriorYear karena itulah yang muncul setelah ekspresi RETURN.

Sales YoY Growth % =
VAR SalesPriorYear =  CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)  
RETURN  SalesPriorYear%

Ekspresi RETURN hanya akan menampilkan nilai SalesPriorYear %. Teknik ini memungkinkan Anda mengembalikan ekspresi ketika Anda telah menyelesaikan penelusuran kesalahan. Ini juga membuat perhitungan lebih mudah dipahami karena berkurangnya kompleksitas kode DAX.