Mengoptimumkan DAX Untuk LuckyTemplates Menggunakan DAX Studio – Enjin Formula

Mengoptimumkan DAX Untuk LuckyTemplates Menggunakan DAX Studio – Enjin Formula

Apabila anda mengoptimumkan model data anda dan DAX anda untuk LuckyTemplates, anda perlu mengingati bahawa terdapat dua enjin yang berjalan di belakang tabir — enjin formula dan enjin storan .

Kedua-dua enjin ini bekerjasama untuk mengembalikan hasil yang diperlukan kepada pengguna. Mereka menyediakan keputusan yang ditetapkan dalam bentuk jadual atau nilai skala.

Isi kandungan

Peranan Enjin Formula

Dalam artikel ini, kita akan memberi tumpuan kepada enjin formula.

Enjin formula ialah enjin peringkat atas yang menguruskan keseluruhan seni bina pertanyaan.

Apa sahaja yang anda lakukan semasa melaksanakan pertanyaan atau semasa membuat lajur yang dikira atau jadual yang dikira, enjin formula bermula.

Enjin formula memahami pertanyaan yang diterima bukan sahaja dalam DAX, tetapi juga dalam MDX. Contohnya, apabila anda menggunakan Excel, anda mencipta model pangsi berdasarkan jadual pangsi dan jadual pangsi sebenarnya menggunakan bahasa MDX.

Di sinilah enjin formula bermula. Kerana ia memahami kedua-dua DAX dan MDX, anda boleh menggunakan model LuckyTemplates yang lain. Pertanyaan yang dihantar daripada model data ini akan menggunakan DAX, manakala pertanyaan yang datang daripada model pangsi akan menggunakan MDX.

Bagaimana Enjin Formula Berfungsi

Memahami pertanyaan yang berasal sama ada daripada sumber MDX atau sumber DAX hanyalah satu faktor dalam prestasi enjin formula. Ia juga melalui langkah lain untuk membantu anda menyelesaikan pertanyaan anda.

Pertama, ia perlu menjana pelan pertanyaan yang difahami oleh enjin storan . Sebagai enjin peringkat bawah, enjin storan sebenarnya tidak mengetahui sama ada jadual pangsi dalam Excel atau visual dalam LuckyTemplates melaksanakan pertanyaan.

Dalam mencipta pelan pertanyaan, enjin formula membina pelan pertanyaan logik dahulu, kemudian ia mencipta pelan pertanyaan fizikal. Kedua-dua pelan pertanyaan logik dan fizikal harus kelihatan seperti satu sama lain.

Selepas melengkapkan pelan pertanyaan fizikal, pengguna atau alat klien mendapat set hasil. Dari situ, alat klien menentukan cara ia akan menggunakan keputusan atau set data untuk memaparkan hasil akhir kepada pengguna.

Had Utama Enjin Formula

Enjin formula memainkan peranan yang besar apabila anda mengoptimumkan DAX untuk LuckyTemplates menggunakan DAX Studio. Walau bagaimanapun, ia juga datang dengan beberapa batasan.

Pertama, enjin formula sentiasa menggunakan teras tunggal untuk mengurus keseluruhan operasi anda tanpa mengira bilangan teras CPU yang tersedia dalam sistem anda .

Apabila saya membuka Pengurus Tugas saya, anda akan melihat bahawa CPU saya mempunyai enam teras.

Mengoptimumkan DAX Untuk LuckyTemplates Menggunakan DAX Studio – Enjin Formula

Walaupun fakta ini, enjin formula masih akan memilih salah satu daripada enam teras tersebut untuk digunakan, sementara ia membiarkan enjin storan menggunakan selebihnya.

Kedua, enjin formula tidak mempunyai akses langsung ke pangkalan data anda . Disebabkan pengehadan ini, anda perlu menyimpan data sama ada di dalam memori dalaman, atau anda boleh menyimpan dalam pangkalan data dan mencipta DirectQuery di atas pangkalan data tersebut.

Ia juga bergantung pada enjin storan untuk mendapatkan data dalam bentuk cache data. Enjin formula kemudian melelang ke atas cache data itu untuk meneruskan sebelum ia boleh memberikan hasil kepada pengguna akhir.

Bagaimana Enjin Formula Membantu Mengoptimumkan DAX Untuk LuckyTemplates

Kadangkala, apabila anda cuba mengoptimumkan model data anda atau DAX anda untuk LuckyTemplates, anda akan melihat enjin storan menjadi perlahan semasa ia melaksanakan pertanyaan. Dalam kes ini, anda boleh menggunakan enjin formula dalam melengkapkan keseluruhan pengiraan untuk mengoptimumkan proses.

Ambil perhatian bahawa jika enjin formula akhirnya membina keseluruhan jadual dengan sendiri, set keputusan yang dibuat dalam proses tidak akan digunakan dalam pertanyaan berikutnya yang akan dijana oleh alat klien jika ia serupa dengan pertanyaan yang dilaksanakan sebelum ini . Tetapi sekiranya enjin storan menyediakan cache data, maka cache data tertentu itu boleh disimpan dalam memori supaya ia boleh mengoptimumkan permintaan yang datang daripada alat klien.

Bagaimanakah ia akan berfungsi?

Katakan kita menulis pertanyaan untuk dilaksanakan sepenuhnya oleh enjin storan, tetapi dengan beberapa aspek yang perlu dikira oleh enjin formula. Dalam kes ini, enjin storan akan menghantar cache data kembali ke enjin formula dan cache data itu (sekiranya ia mudah) boleh disimpan dalam ingatan.

Sekarang, jika pertanyaan serupa datang dalam beberapa saat kemudian, bukannya mengimbas keseluruhan model data sekali lagi, enjin formula atau enjin storan akan menggunakan cache data tertentu itu supaya masa pertanyaan dapat dikurangkan dan pengalaman pengguna boleh bertambah baik.

Mengurangkan Beban Pada Enjin Formula

Sekali lagi, enjin formula memahami kod DAX dan MDX.

Jadi jika anda menggunakan , dan tugasan lain, enjin formula mengetahui semua fungsi yang anda gunakan dalam bahasa DAX dan akan dapat menyelesaikan semuanya sendiri. Walau bagaimanapun, ini boleh memberi kesan kepada prestasi pertanyaan terutamanya kerana enjin formula cuba melakukan segala-galanya menggunakan satu teras.

Inilah sebabnya mengapa kita juga perlu berhati-hati tentang mengurangkan beban pada enjin formula dan meningkatkan beban pada enjin storan.

Contoh yang baik tentang perbezaan pengiraan dalam enjin formula berbanding enjin storan ialah penggunaan CROSSJOIN berbanding .

Apabila anda menggunakan CROSSJOIN, hanya sejumlah data yang terhad akan dihantar melalui enjin storan. Bagi pengiraan selebihnya, semuanya akan dilakukan oleh enjin formula. Sebagai perbandingan, menggunakan SUMMARIZE bermakna melaksanakan keseluruhan pertanyaan dalam enjin storan.

Sudah tentu, ini juga bergantung pada cara SUMMARIZE digunakan.

Jika SUMMARIZE digunakan sebagai fungsi paling dalam, maka ia pasti akan ditolak ke enjin simpanan. Tetapi dalam beberapa kes, SUMMARIZE digunakan bersama dengan kod berbeza yang memerlukan enjin formula berfungsi. Dalam kes ini, enjin formula akan masuk dan melakukan kerja.

Mengetahui ke mana beban pergi boleh membantu anda mengoptimumkan prestasi pertanyaan anda, terutamanya apabila anda mengingati kapasiti dan had untuk enjin yang anda gunakan.

Alat Yang Boleh Membantu Mengoptimumkan DAX Untuk LuckyTemplates

Mengoptimumkan DAX akan menjadi lebih mudah jika anda memaksimumkan alatan yang membolehkannya. DAX Studio ialah salah satu alat tersebut.

Mari kita ambil contoh sebelum ini di mana enjin formula mengambil keseluruhan beban untuk melengkapkan pengiraan apabila fungsi SUMMARIZE digunakan. DAX Studio boleh membantu anda menulis semula kod anda dengan cara yang mendorong SUMMARIZE ke dalam enjin storan, membebaskan beban pada enjin formula. Ini berpotensi meningkatkan prestasi model data dan pertanyaan anda.

Sudah tentu, ini harus berfungsi dengan lancar untuk pertanyaan mudah. Terdapat juga senario yang lebih rumit.

Sebagai contoh, anda boleh membina model komposit yang menggunakan dua enjin storan dalam model data itu sendiri. Satu mungkin untuk Vertipaq, manakala satu lagi untuk DirectQuery. Dalam kes ini, pangkalan data anda perlu dioptimumkan dengan cara pertanyaan yang dijana akan dibina untuk model data hubungan khusus tersebut.

Katakan anda mempunyai dua jadual dalam model tarikh anda — jadual Produk dan jadual Jualan. Jadual Produk berada dalam storan Vertipaq, manakala jadual Jualan, sebagai jadual yang lebih besar, disimpan terus di dalam pangkalan data melalui sambungan DirectQuery.

Mari kita andaikan juga bahawa anda sedang menyeret lajur Jenama ke dalam matriks, serta ukuran Jumlah Jualan yang datang daripada jadual Jualan dalam sambungan DirectQuery.

Dalam kes ini, enjin formula perlu melakukan operasi antara kedua-dua enjin.

Mula-mula, ia akan mendapatkan semula lajur Kunci Produk dan Jenama daripada jadual Produk. Kemudian, ia akan mendapatkan semula lajur Harga Bersih, Kuantiti dan Kunci Produk daripada jadual Jualan. Sebaik sahaja ia mempunyai cache data daripada Vertipaq dan DirectQuery, enjin formula perlu mengambil cache data dan cuba menyertainya untuk memberikan hasil kepada pengguna akhir.


Teknik Pengoptimuman Pertanyaan DAX Dan Pelajaran
Prestasi Pertanyaan Dan Persediaan Studio DAX
Pengoptimuman DAX: Di Mana Untuk Cari Perangkap DAX Tersembunyi

Kesimpulan

Enjin formula benar-benar memainkan peranan yang besar apabila anda bekerja dengan DAX. Walau bagaimanapun, adalah penting untuk memahami cara ia berfungsi terlebih dahulu sebelum melangkah masuk. Menguasai cara membuat enjin formula dan enjin storan berfungsi dengan lancar bersama-sama adalah penting, terutamanya jika anda mahu pertanyaan DAX anda berprestasi lebih baik.

Sebagai enjin peringkat tertinggi dalam seni bina perkhidmatan analisis, enjin formula perlu melakukan banyak operasi. Tetapi setelah anda juga memahami selok-belok enjin storan, anda boleh memikirkan operasi mana yang hendak dimasukkan ke dalam enjin storan dan yang mana satu untuk ditinggalkan dalam enjin formula.

Kami akan menggali lebih mendalam ke dalam enjin storan dalam tutorial berasingan.

Semua yang terbaik,


Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu