Mengapa Kolom Terhitung Power BI Merusak Performa Laporan dan Membengkakkan Memori Model
By Mirko Peters ·
Ketahui mengapa terlalu sering menggunakan kolom terhitung di Power BI membengkakkan memori model dan merusak performa laporan. Pelajari cara mengoptimalkan arsitektur model data Anda.
Automatically translated with AI from the original post. Read the English original

Penggunaan kolom terhitung yang keliru di Power BI dapat diam-diam membengkakkan memori model data Anda dan memperlambat waktu rendering laporan. Berbeda dengan measure dinamis, kolom terhitung mengevaluasi dan menyimpan setiap baris saat penyegaran data, memakan RAM yang berharga serta menambah beban pemrosesan di seluruh arsitektur ruang kerja Anda.
Poin Penting
- Kolom terhitung menghitung nilai baris demi baris saat penyegaran data dan menyimpannya secara permanen di memori.
- Terlalu sering menggunakan kolom terhitung sangat menurunkan rasio kompresi VertiPaq, sehingga ukuran file membengkak secara signifikan.
- Konteks baris memaksa perhitungan berjalan secara statis, sepenuhnya mengabaikan pilihan filter pengguna pada elemen visual.
- Model data dengan terlalu banyak kolom kesulitan saat diskalakan, terutama jika diintegrasikan ke dalam lingkungan Microsoft Fabric perusahaan berskala besar.
- Memindahkan logika dari kolom yang berat penyimpanan ke measure saat kueri dijalankan menghemat RAM sistem dan mengoptimalkan performa laporan.
Biaya Memori Tersembunyi dari Evaluasi Tingkat Baris
Saat membangun laporan baru di Power BI, mudah terjebak dalam kebiasaan menggunakan kolom terhitung untuk setiap data baru yang ingin ditampilkan. Jika Anda membutuhkan margin laba, nama lengkap hasil penggabungan, atau kelompok kategori untuk angka penjualan, membuat kolom di dalam tabel terasa intuitif. Bagaimanapun, hasilnya bisa langsung terlihat di Data View, persis seperti spreadsheet Excel.
Namun, Power BI adalah mesin analitik, bukan spreadsheet. Setiap kali Anda membuat kolom terhitung, Anda memerintahkan mesin basis data VertiPaq untuk menghitung nilai tersebut untuk setiap baris dalam tabel selama proses penyegaran data. Jika tabel penjualan Anda memiliki lima juta baris, kolom terhitung baru Anda akan menambahkan lima juta entri terpisah ke model semantik Anda.
Yang lebih buruk, kolom terhitung mengganggu algoritma kompresi mesin. VertiPaq mengandalkan kolom dengan kardinalitas rendah, yaitu kolom dengan nilai berulang dan duplikat, untuk mengompresi data secara efisien. Kolom terhitung yang unik sering merusak efisiensi kompresi ini, sehingga memori yang dibutuhkan untuk menjaga model tetap berada di dalam memori berlipat ganda. Seiring model Anda bertumbuh, pembengkakan memori ini dapat dengan cepat melampaui batas kapasitas ruang kerja Anda di cloud Microsoft.
Bagaimana Konteks Statis Membatasi Fleksibilitas Pelaporan Anda
Selain konsumsi memori, kolom terhitung juga menghadirkan keterbatasan fungsional yang signifikan karena cara kolom tersebut menangani konteks evaluasi. Kolom terhitung beroperasi secara ketat dalam konteks baris. Kolom ini mengevaluasi nilai baris saat ini secara terpisah dari interaksi pengguna, slicer, atau pilihan cross-filter yang dibuat pada kanvas laporan Anda.
Jika Anda membuat kolom terhitung untuk menandai pelanggan bernilai tinggi berdasarkan ambang batas statis, klasifikasi tersebut tertanam di lapisan penyimpanan. Jika pengguna kemudian mengubah slicer untuk melihat data berdasarkan wilayah atau mengubah rentang tanggal, kolom terhitung tetap tidak menyadari filter tersebut. Kolom ini tidak dapat menyesuaikan diri secara dinamis dengan perubahan status agregasi, karena nilainya sudah dihitung dan disimpan berjam-jam sebelumnya selama penyegaran terakhir.
Kekakuan ini sangat berbeda dengan measure, yang menghitung hasil secara langsung berdasarkan sepenuhnya pada filter konteks yang diterapkan pengguna pada saat itu. Ketika pengguna berinteraksi dengan visual, measure akan dihitung ulang untuk memberikan wawasan yang presisi dan sensitif terhadap konteks, sedangkan calculated column hanya mengulang data statis yang tersimpan di RAM.
Merancang Model yang Lebih Ringan untuk Microsoft Fabric dan Azure
Pelaporan cloud di tingkat enterprise menuntut efisiensi tinggi, terutama saat diskalakan di seluruh Microsoft Fabric, Azure, dan lingkungan data Microsoft 365 yang kompleks. Semantic model yang membengkak menguras sumber daya infrastruktur, memperlambat waktu respons kueri, dan membuat pengguna bisnis frustrasi saat menunggu dashboard dimuat.
Agar laporan Anda tetap berjalan dengan kecepatan optimal, batasi calculated column hanya pada skenario yang benar-benar memerlukan nilai di tingkat baris. Misalnya, Anda mungkin menggunakan calculated column jika perlu membuat kunci relasi antartabel berdasarkan beberapa parameter, atau jika nilainya harus digunakan di dalam slicer atau aturan row-level security (RLS) yang tidak mengizinkan penggunaan measure.
Untuk semua perhitungan analitis lainnya, seperti total, rata-rata, rasio, dan agregasi bersyarat, pindahkan logikanya ke measure. Measure tidak memakan ruang penyimpanan karena tidak menyimpan nilai di dalam model. Sebaliknya, measure hanya berada di memori sebagai kode dan dijalankan ketika sebuah visual meminta data. Pendekatan ini menghemat RAM, memaksimalkan kompresi, dan menjaga infrastruktur cloud Anda tetap berjalan lancar.
Kesimpulan
Memahami perbedaan mendasar antara penyimpanan di tingkat baris dan eksekusi kueri dinamis sangat penting bagi siapa pun yang membangun solusi analitik yang dapat diskalakan. Dengan meminimalkan calculated column yang tidak perlu dan memanfaatkan kekuatan measure dinamis, Anda dapat meningkatkan kecepatan laporan secara signifikan dan mengurangi konsumsi memori.
Untuk mempelajari topik ini lebih lanjut dan mendengarkan penjelasan lengkap tanpa istilah teknis yang rumit tentang cara mesin menangani formula Anda, dengarkan episode lengkapnya. Tetap selangkah lebih maju dalam strategi analitik cloud Anda dengan mengikuti terus wawasan dari para ahli di M365 FM Podcast.
Pertanyaan Umum
Mengapa calculated column menghabiskan begitu banyak memori di Power BI?
Calculated column mengevaluasi setiap baris selama data refresh dan menyimpan nilai-nilai tersebut secara permanen di RAM model. Hal ini mencegah mesin VertiPaq mengompresi data secara efektif, sehingga model dengan cepat membengkak.
Apakah measure memakan ruang penyimpanan dalam semantic model Power BI?
Tidak, measure tidak memakan ruang penyimpanan. Measure disimpan hanya sebagai definisi formula di dalam metadata dan baru dihitung secara dinamis ketika sebuah visual atau interaksi pengguna memintanya.
Kapan sebenarnya calculated column tepat digunakan?
Calculated column sebaiknya dicadangkan untuk skenario tertentu yang memerlukan konteks baris, seperti membuat kunci komposit untuk relasi, menerapkan aturan row-level security (RLS), atau menyediakan item yang harus tampil sebagai nilai slicer statis.
Bagaimana calculated column memengaruhi performa rendering laporan?
Calculated column yang berlebihan memperbesar ukuran keseluruhan semantic model dan menurunkan kompresi data. Model yang lebih besar membutuhkan lebih banyak memori dan daya pemrosesan, yang pada akhirnya memperlambat eksekusi kueri dan waktu pemuatan laporan di seluruh workspace Anda.