Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Dalam tutorial ini, anda akan belajar cara mengoptimumkan ukuran dalam LuckyTemplates. Mengoptimumkan langkah dalam laporan anda meningkatkan prestasi kod anda dalam menghasilkan cerapan dan data yang berharga. Anda juga akan belajar tentang kaedah penilaian yang berbeza dan cara menggunakannya untuk mengoptimumkan laporan anda. Anda boleh menonton video penuh tutorial ini di bahagian bawah blog ini.
Isi kandungan
1. Menganalisis Prestasi Kod
Dalam contoh ini, anda perlu mengoptimumkan laporan ini:
Ini ialah model data yang akan anda gunakan:
Jadual Pekerjaan mengandungi semua maklumat mengenai sebarang kerja yang telah dilaksanakan dalam tempoh masa tertentu.
Jadual ini ialah asas semua ukuran yang akan anda optimumkan:
Pertama, anda perlu menguji prestasi laporan.
Pergi ke tab View dan pilih Performance Analyzer . Kemudian, klik Mula Rakaman dan Muat Semula Visual . Tunggu penganalisis untuk memaparkan visual.
Setelah ini selesai, jatuhkan senarai Pecahan Insentif dan klik Salin Pertanyaan .
Seterusnya, pilih Alat Luaran untuk pergi ke DAX Studio dan lihat kod yang LuckyTemplates jana.
Kemudian, tampalkan pertanyaan yang disalin di dalam ruang kerja.
Pembolehubah Dalam Ukuran
Pembolehubah pertama ialah DateClosed iaitu penghiris pada papan pemuka. Ia menggunakan lajur daripada jadual Fakta untuk mendapatkan nilai tempoh tertentu dalam penghiris.
Pembolehubah seterusnya ialah JobLost yang menyemak data Kehilangan Pekerjaan Salah atau Kosong.
Pembolehubah terakhir ialah MatrixVisual . Ini adalah jantung kod. Ia menunjukkan lajur ringkasan yang dijana oleh LuckyTemplates untuk mengisi visual matriks. Ia mengumpulkan Jenis Kehilangan Pekerjaan dalam matriks ini dan menyuntik penapis yang datang daripada penghiris. Kemudian, ia menambah lajur lanjutan.
Setelah lajur ringkasan melengkapkan pelaksanaan, anda akan melihat keputusan dalam anak tetingkap di bawah kod.
LuckyTemplates menggunakan hasilnya untuk mengisi visual matriks.
Cache Sejuk Untuk DAX Studio
Seterusnya, anda perlu menyemak masa yang diambil dalam melaksanakan keseluruhan kod. Untuk berbuat demikian, hidupkan Pemasa Pelayan dan kemudian pilih Kosongkan Cache Kemudian Jalankan .
Apabila anda cuba mengoptimumkan ukuran dalam LuckyTemplates menggunakan DAX Studio , adalah lebih baik untuk beroperasi di bawah senario cache sejuk supaya masa yang anda peroleh adalah betul. Selepas itu, tekan F5 dan tunggu operasi selesai dalam tab Pemasa Pelayan .
Setelah selesai, anda dapat melihat bahawa jumlah masa pelaksanaan ialah 3.6 saat. Ia menghabiskan kebanyakan masa dalam enjin formula dan menghabiskan 57 milisaat dalam enjin storan
Anda juga boleh melihat bahawa ia menemui 383 pertanyaan enjin storan. Daripada semua pertanyaan itu, terdapat 327 yang dimasukkan ke dalam ingatan supaya ia boleh digunakan semula.
2. Menganalisis Satu Ukuran Dalam LuckyTemplates
Seterusnya, anda perlu mengoptimumkan 3 langkah yang sama ini.
Anda perlu mengekstrak langkah ini ke dalam fail lain dan menyambungkannya ke model data yang anda gunakan.
Selepas itu, mulakan Pemasa Pelayan untuk melihat masa yang diambil oleh 3 langkah dalam mengisi visual.
Keputusan larian menunjukkan bahawa langkah mengambil masa 1.85 saat untuk mendapatkan keputusan.
Hasilnya menunjukkan jadual yang terdiri daripada 10 baris dan 3 lajur lanjutan yang tergolong dalam lajur ringkasan.
Lajur Jenis Kehilangan mengandungi 10 nilai unik yang dikira oleh kod untuk mendapatkan peratusan insentif.
Masa yang diambil oleh kod adalah tinggi secara eksponen. Di sinilah dan bila anda perlu mengoptimumkannya.
Ukuran Insentif RB Dalam LuckyTemplates
Ini ialah ukuran% Insentif RB dalam LuckyTemplates. Ia merupakan salah satu daripada 3 langkah utama yang digunakan dalam contoh ini.
Anda boleh melihat bahawa ia cuba mengira peratusan insentif.
Ia mempunyai pembolehubah, JobType, yang mendapatkan semula nilai Jenis Hilang dalam konteks penapis semasa. Ia juga menyemak sama ada terdapat hanya satu nilai yang boleh dilihat dalam konteks penapis semasa. Anda perlu menggunakan fungsi supaya setiap kali syarat dipenuhi, ia memberikan hasil yang sepadan.
Kod ukuran ini menjana banyak gris enjin storan yang meningkatkan masa dalam tempoh keseluruhan kod.
Sekarang, kembali ke DAX Studio untuk menyemak jumlah pertanyaan enjin storan yang dijana oleh ukuran.
Anda dapat melihat bahawa ia mengambil masa 600 milisaat untuk melaksanakan dan 43 pertanyaan enjin storan untuk hanya mendapatkan data untuk 10 baris.
Sekarang, semak data yang diminta daripada enjin storan. Dalam pertanyaan pertama, terdapat Jenis Kehilangan Pekerjaan dan DCOUNT Jenis Kehilangan Pekerjaan.
Pertanyaan seterusnya mempunyai Tarikh Pekerjaan Ditutup iaitu daripada penghiris dalam laporan.
Dalam kod ketiga, anda akan melihat Jenis Kehilangan Pekerjaan lain dengan ID data panggil balik.
Dalam baris lain, anda akan melihat baris kod yang paling penting.
Perkara pertama yang anda lihat ialah Bayaran Kerja Yang Diterima, Diinvois dan Perbelanjaan Sebenar.
Seterusnya ialah fungsi WHERE yang menyatakan keadaan dan hasil yang sepadan. Hasilnya akan berbeza-beza berdasarkan pemilihan penghiris dan pernyataan suis dalam ukuran RB Insentif%.
Anda juga akan melihat bahawa kod pada Baris 12 dan 14 adalah sama.
Jika anda menatal ke kanan, anda dapat melihat bahawa terdapat baris dengan pertanyaan yang sama. Pertanyaan pada talian diarahkan oleh pernyataan suis dalam ukuran RB Insentif%.
Jika anda kembali kepada ukuran RB Insentif% dalam LuckyTemplates, anda boleh melihat bilangan kali pertanyaan diulang dan cara pertanyaan itu ditunjukkan dalam pertanyaan enjin storan.
Logik Di Sebalik IF Dan Suis
Kini, untuk memahami mengapa pertanyaan dilaksanakan beberapa kali, anda perlu memahami logik fungsi dan SWITCH .
Anda perlu melaksanakannya secara berasingan pada Pelan Pertanyaan. Tetapi sebelum anda berbuat demikian, pastikan anda menyambung ke pangkalan data dan menghidupkan Pelan Pertanyaan.
Laksanakan pernyataan SWITCH dalam pelan pertanyaan. Kemudian, serlahkan kenyataan dan kemudian tekan enter.
Ini akan menjana Pelan Pertanyaan Logik dengan operasi yang berbeza.
Seterusnya, laksanakan pernyataan IF dengan menyerlahkan pernyataan dan tekan enter.
Anda boleh melihat bahawa ia menjana Pelan Pertanyaan Logik yang sama.
Ini kerana apabila anda menggunakan fungsi SWITCH , enjin secara dalaman menukar fungsi tersebut kepada pernyataan IF . Tetapi pernyataan SWITCH disyorkan kerana ia meningkatkan kebolehbacaan kod anda.
Selepas itu, anda perlu memahami bagaimana kod dilaksanakan di dalam fungsi IF atau SWITCH .
Ini adalah contoh kod yang mempunyai pernyataan SWITCH di dalamnya.
Ia mempunyai ukuran untuk Untung Kasar, Jumlah Anggaran dan Jumlah Invois yang kesemuanya merupakan JUMLAH lajur yang berbeza. Ia juga mempunyai fungsi atas Jenis Kehilangan Pekerjaan dan penyataan SWITCH dan TRUE .
Apabila anda melaksanakan kod ini, anda akan melihat logik di sebalik fungsi.
Pertanyaan pertama mendapat Jenis Kehilangan Pekerjaan yang berbeza daripada jadual Pekerjaan.
Selain daripada Jenis Kehilangan Pekerjaan, ia juga mendapat jumlah Anggaran Pekerjaan.
Di dalam keadaan WHERE , anda juga boleh melihat nilai yang wujud dalam lajur Jenis Kehilangan Pekerjaan.
3. Gunakan Kaedah Penilaian Kod
Dalam DAX, terdapat 3 kaedah dalam menilai kod:
Kaedah ini akan membantu anda mengoptimumkan kod atau ukuran dalam LuckyTemplates.
Kaedah 1: Penilaian Ketat
Contoh yang ditunjukkan di bawah menggunakan kaedah Penilaian Ketat.
Logik di sebaliknya ialah jika konteks Jenis Kehilangan Pekerjaan adalah sama dengan A, ia akan memberikan Keuntungan Kasar. Jika tidak, ia memberikan Jumlah Anggaran. Kod melakukan ini untuk setiap baris dalam Jenis Kehilangan Pekerjaan.
Ini adalah satu lagi contoh ukuran dalam LuckyTemplates yang menggunakan Penilaian Ketat.
Apabila anda melaksanakan kod ini, ia akan menjana 5 pertanyaan enjin storan.
Dengan Penilaian Ketat, kod ini menyediakan Jumlah Anggaran jika Keuntungan Kasar didarab dengan 1.4 adalah lebih besar daripada Anggaran Purata. Jika tidak, ia akan memberikan Keuntungan Kasar.
Menggunakan Penilaian Ketat menghasilkan lebih banyak pertanyaan enjin storan kerana penyata IF menyemak persaingan Keuntungan Kasar beberapa kali dan akhirnya akan menghalang prestasi keseluruhan operasi.
Kaedah 2: Eager Evaluation
Ini adalah kod yang sama seperti contoh sebelumnya.
Tetapi bukannya mengira ukuran dalam pernyataan IF , ia mengira segala-galanya dalam sebelum RETURN .
Ini bermakna sebelum menyemak penyata, ia mendapat semua nilai Untung Kasar dan Jumlah Anggaran untuk semua Jenis Kehilangan Pekerjaan.
Apabila anda melaksanakan kod ini, bilangan enjin storan dikurangkan kepada 3.
Ia meningkatkan prestasi keseluruhan operasi.
Dalam pertanyaan operasi pertama, ia mendapat Jenis Kehilangan Pekerjaan dan jumlah Anggaran Pekerjaan dan Keuntungan Kasar.
Pertanyaan seterusnya mendapat jumlah Anggaran Pekerjaan daripada Stabil Pekerjaan. Ini digunakan dalam mengira Anggaran Purata.
Pertanyaan terakhir memberikan Jenis Kehilangan Pekerjaan yang berbeza untuk nilai yang ditulis pada ADDCOLUMNS .
Menggunakan Eager Evaluation mendapatkan segala-galanya dalam satu cache data tunggal. Data juga dinilai dan diulang pada enjin formula. Penyata IF akan mengembalikan sama ada Jumlah Anggaran atau Untung Kasar bergantung pada penilaian Betul atau Salah.
Eager Evaluation bukanlah kaedah terbaik dalam mengoptimumkan kod anda. Penilaian Ketat akan menghasilkan prestasi yang lebih baik jika anda mempunyai kod yang kompleks. Semuanya bergantung pada fungsi yang anda gunakan di dalam kod DAX.
Kelemahan Eager Evaluation ialah jika anda mencipta barang berharga sebelum pernyataan IF atau SWITCH dan menggunakan pembolehubah tersebut di dalam pernyataan yang tidak sepatutnya dilaksanakan, enjin masih akan mengira pembolehubah tersebut.
Berikut adalah contoh kelemahan:
Sebaik-baiknya, jika Jenis Kehilangan Pekerjaan adalah sama dengan A ia sepatutnya mendapat Untung Kasar. Jika tidak, ia mendapat Anggaran Jumlah.
Memandangkan tiada nilai dalam lajur Jenis Kehilangan Kerja yang sama dengan A, lajur tersebut hendaklah sentiasa mendapat Anggaran Jumlah. Walau bagaimanapun, ia masih memberikan Keuntungan Kasar dalam cache data.
Jika anda melihat pada pertanyaan pertama, ia mendapat Jenis Kehilangan Pekerjaan dan jumlah Keuntungan dan Anggaran Kasar Pekerjaan.
Dalam pertanyaan seterusnya, ia mendapat Jenis Kehilangan Pekerjaan yang berbeza daripada jadual Pekerjaan.
Kaedah Ke-3: JIKA.EVALUASI BERSANGAT
Kaedah seterusnya ialah penilaian fungsi IF.EAGER yang mereplikasi tingkah laku Eager Evaluation.
Ia membolehkan anda menulis kod yang mewakili Penilaian Ketat dan melaksanakannya dengan Eager Evaluation.
Jika anda melihat kod sampel ini, ia sama dengan kod Penilaian Ketat. Satu-satunya perbezaan ialah ini menggunakan fungsi IF.EAGER dan bukannya IF .
Sebelum anda melaksanakan kod, pastikan anda menyambung kepada model LuckyTemplates dan hidupkan Pemasa Pelayan. Setelah selesai, tekan F5.
Anda dapat melihat bahawa ia menghasilkan 3 pertanyaan enjin storan.
Pertanyaan pertama mendapat Jenis Kehilangan Pekerjaan dan jumlah Anggaran Pekerjaan dan Keuntungan Kasar.
Pertanyaan kedua mendapat jumlah Anggaran Pekerjaan.
Pertanyaan terakhir mendapat Jenis Kehilangan Pekerjaan yang berbeza daripada jadual Pekerjaan.
Anda akan perasan bahawa ia melaksanakan tingkah laku yang sama seperti Eager Evaluation.
Kaedah Penilaian Ringkasan
Dalam usaha untuk menjadikan prestasi pengiraan anda lebih baik, anda perlu ingat perkara berikut:
Tetapi ambil perhatian bahawa anda perlu menguji ketiga-tiga kaedah ini untuk mengetahui perkara yang benar-benar terbaik untuk digunakan dalam laporan anda.
4. Optimumkan Satu Ukuran Dalam LuckyTemplates
Pelajaran utama dalam tutorial ini ialah mengoptimumkan kod anda.
Kembali dan lihat ukuran RB Insentif% yang dilaksanakan menggunakan Penilaian Ketat. Seterusnya, cuba nilaikannya menggunakan Eager Evaluation.
Mulakan dengan mencipta pembolehubah dan memasukkan fungsi RETURN .
Tukar rujukan ukuran dengan pembolehubah.
Selepas itu, sahkan ukuran dan pergi ke DAX Studio untuk melihat sama ada ia meningkatkan prestasi.
Ia menunjukkan bahawa jumlah masa ialah 642 milisaat dan jumlah pertanyaan enjin storan telah dikurangkan kepada 39.
Sekarang, buat pembolehubah untuk semua data dan ubah semua rujukan ukuran kepada pembolehubah sepadannya.
Seterusnya, sahkan ukuran dan laksanakan kod dalam studio DAX.
Jumlah masa pelaksanaan dan jumlah pertanyaan enjin storan telah dikurangkan daripada 600 milisaat kepada 170 milisaat dan 43 pertanyaan kepada 15 pertanyaan, masing-masing.
Anda juga boleh melihat bahawa tiada pendua. Mempunyai pembolehubah dalam kod anda meningkatkan kebolehbacaan dan prestasinya.
Pengoptimuman Lanjutan Untuk Pengukuran Dalam LuckyTemplates
Seterusnya, anda perlu mengoptimumkan lagi kod DAX anda.
Daripada menggunakan , gunakan fungsi .
HASONEVALUE mengira bilangan nilai yang tersedia dalam konteks penapis yang merupakan operasi yang sangat intensif. Sementara itu, ISINSCOPE menyemak sama ada lajur yang dibekalkan digunakan untuk pengumpulan atau tidak.
Selepas menukar fungsi, sahkan ukuran dan laksanakannya dalam DAX Studio.
Anda boleh melihat bahawa bilangan pertanyaan enjin storan kini ialah 12. Jumlah masa pelaksanaan juga telah menjadi 105 milisaat.
Dalam pertanyaan ke-2, anda akan melihat ID data Panggilan Balik.
Ini kadangkala berlaku apabila anda menggunakan SELECTEDVALUE dengan medan teks. Apabila anda melihat data Panggilan Balik, enjin storan memanggil enjin formula untuk membantu menyelesaikan kerumitan kod. Ini memperlahankan prestasi ukuran anda.
Anda perlu mengalih keluar data Panggilan Balik untuk mempunyai prestasi yang lebih baik dalam laporan anda. Untuk melakukan itu, anda perlu membuat jadual konfigurasi dalam model data.
Pergi ke pilihan Masukkan Data dan tampal data. Namakan jadual LossTypeConfigTable .
Seterusnya, klik Edit untuk menukar jenis data lajur yang akan anda import.
Jenis data ID Jenis Kehilangan hendaklah nilai guru supaya ia boleh digunakan dalam fungsi SELECTEDVALUE .
Sebaik sahaja ia telah dimuatkan ke dalam model, buat hubungan antara jadual Pekerjaan dan jadual LossTypeConfigTable berdasarkan Jenis Kehilangan.
Selepas membuat perhubungan, pergi ke jadual Pekerjaan dan tambah lajur baharu. Panggilnya ID Kehilangan dan kemudian, masukkan formula.
Gunakan fungsi untuk jadual konfigurasi dan kemudian ekstrak ID Jenis Kehilangan.
Seterusnya, kembali ke ukuran RB Insentif% dan rujuk medan angka dan bukannya medan teks. Di dalam SELECTEDVALUE , gantikan Jenis Kehilangan dengan ID Kehilangan.
Seterusnya, ubah suai semua langkah di dalam kod. Gunakan nilai integer dan bukannya nilai teks dalam menyemak Jenis Kerja.
Setelah anda menukar kod, sahkan ukuran dan laksanakannya dalam DAX Studio.
ID data Panggilan Balik dihapuskan dalam pertanyaan dan masa pelaksanaan kod dikurangkan kepada 93 milisaat.
Ukuran% Insentif RB kini dioptimumkan sepenuhnya.
5. Optimumkan Langkah Lain Dalam LuckyTemplates
Anda juga perlu mengoptimumkan langkah WR Insentif% dan QB Insentif.
Salin dan tampal kod tepat yang digunakan dalam ukuran RB Insentif%. Kemudian, jalankan 3 langkah bersama-sama.
Jumlah masa pelaksanaan dioptimumkan dan dikurangkan daripada 1855 milisaat kepada 213 milisaat. Terdapat juga hanya 12 pertanyaan enjin storan.
Dua pertanyaan pertama mencipta konteks penapis dan selebihnya mewakili bilangan nilai yang tepat dalam lajur Jenis Kehilangan Pekerjaan.
Memandangkan semua langkah telah dioptimumkan, jalankan kod asal dan lihat bagaimana prestasi telah berubah. Data menunjukkan bahawa ia kini dikira dalam 1.9 saat.
Prestasi keseluruhan kod kini dioptimumkan, menjadikan laporan anda lebih pantas dan lebih baik.
Optimumkan Fungsi DAX Dengan Kursus Baharu Ini
Transformasi LuckyTemplates Mudah Untuk Data Lebih Dioptimumkan
Optimumkan Formula LuckyTemplates Menggunakan DAX Lanjutan
Kesimpulan
Dalam laporan LuckyTemplates, langkah harus dioptimumkan untuk memastikan kod DAX anda berjalan lancar. Ini juga meningkatkan prestasi keseluruhan laporan anda.
Anda telah mempelajari kaedah yang berbeza untuk mengoptimumkan ukuran anda dalam LuckyTemplates dan anda telah mempelajari cara menilai yang mana satu untuk digunakan bergantung pada konteks laporan anda.
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
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.
Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.
Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.
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.
Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.
Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.
Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.
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