Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pola kueri data paling sederhana dan tercepat adalah:
- Tabel atau tampilan tunggal
- Difilter sebelumnya di server ke apa yang Anda butuhkan
- Kolom diindeks dengan benar untuk kueri yang diharapkan
Saat merancang aplikasi, Anda perlu memikirkan cara mengkueri data dengan cepat. Cara terbaik untuk mengkueri data adalah dengan menggunakan satu tabel atau tampilan yang memiliki semua informasi yang Anda butuhkan, dan memfilternya di server sebelum Anda menampilkannya di aplikasi Anda. Anda juga perlu memastikan bahwa kolom yang Anda gunakan untuk memfilter atau mengurutkan data diindeks dengan benar. Ini membuat aplikasi Anda lebih cepat dan lebih lancar.
Misalnya, Anda memiliki galeri yang menampilkan daftar pelanggan dan tenaga penjualan mereka. Jika Anda menyimpan informasi pelanggan dan tenaga penjualan dalam tabel terpisah, Anda perlu menggunakan pencarian untuk mendapatkan nama tenaga penjualan untuk setiap pelanggan. Ini memperlambat aplikasi Anda karena perlu menjalankan banyak kueri ke tabel lain. Cara yang lebih baik adalah membuat tampilan yang menggabungkan informasi pelanggan dan tenaga penjualan dalam satu tabel, dan menggunakan tampilan tersebut sebagai sumber data untuk galeri Anda. Kemudian aplikasi Anda hanya perlu menjalankan satu kueri untuk mendapatkan semua data yang dibutuhkan.
Ada trade-off antara kecepatan kueri dan normalisasi data. Normalisasi data berarti Anda menyimpan data hanya sekali, dan menghindari duplikasi. Ini membantu menjaga data tetap konsisten dan akurat. Namun, terkadang Anda perlu menduplikasi beberapa data untuk membuat kueri lebih cepat dan lebih mudah. Anda perlu menyeimbangkan dua tujuan ini dalam desain aplikasi dan struktur tabel Anda. Jika tidak, aplikasi Anda akan lambat dan laggy karena perlu melakukan banyak pekerjaan untuk memfilter dan menggabungkan data dari tabel yang berbeda.
Menggunakan tampilan sisi server
Tampilan mungkin adalah alat yang paling umum untuk membantu menyeimbangkan tujuan-tujuan ini. Ini menyajikan struktur tabel tunggal untuk kueri, mempraproses data sesuai kebutuhan kueri Anda, dan mengaktifkan penelusuran serta penggabungan ke tabel lain. Karena filter, pencarian, dan penggabungan untuk tampilan dihitung di server, baik beban data maupun komputasi sisi klien diminimalkan.
Hindari terlalu banyak pencarian di galeri
Galeri dapat menampilkan banyak rekaman dari sumber data. Tetapi terkadang, Anda perlu menampilkan informasi tambahan dari sumber data lain yang terkait dengan yang asli. Misalnya, Anda memiliki galeri yang menampilkan daftar pelanggan, dan Anda ingin menampilkan nama tenaga penjual yang ditetapkan untuk setiap pelanggan. Nama tenaga penjualan disimpan di sumber data yang berbeda dari informasi pelanggan. Untuk menampilkan nama tenaga penjualan, Anda perlu menggunakan fungsi pencarian yang menemukan rekaman yang cocok di sumber data lain. Ini memperluas tabel asli dengan nilai pencarian.
Namun, memperluas tabel bisa sangat lambat jika Anda memiliki banyak rekaman dan banyak pencarian. Untuk setiap rekaman di galeri, aplikasi perlu menjalankan kueri terpisah ke sumber data lain dan mendapatkan nilai pencarian. Ini berarti bahwa aplikasi mungkin perlu menjalankan banyak kueri untuk setiap rekaman, yang dapat memakan waktu lama dan memengaruhi performa aplikasi. Anti-pola ini terkadang dikenal sebagai masalah "N kuadrat, (n^2)" atau "N+1".
Gunakan StartsWith atau Filter
Power Fx menyediakan beberapa cara untuk mencari data. Secara umum, gunakan ekspresi yang memanfaatkan indeks seperti StartsWith atau Filter , bukan yang membaca seluruh tabel seperti Masuk. Operator In baik-baik saja untuk koleksi dalam memori atau jika tabel sumber data eksternal sangat kecil.
Pertimbangkan untuk menduplikasi data
Terkadang data lambat diakses dalam kueri karena disimpan di lokasi atau format yang berbeda. Untuk membuat kueri lebih cepat, Anda bisa menyalin data lambat dan menyimpannya secara lokal dalam tabel yang cepat dan mudah dikueri. Namun, ini berarti bahwa data lokal mungkin bukan versi data asli yang paling diperbarui. Kemudian jalankan proses lain untuk memperbarui data lokal secara berkala. Proses ini dapat berupa alur Power Automate, plugin, prosedur tersimpan, atau metode lain yang dapat memindahkan data dari satu tempat ke tempat lain.
Persyaratan frekuensi memperbarui data lokal tergantung pada kebutuhan bisnis Anda. Seberapa segar data yang diperlukan untuk aplikasi Anda? Misalnya, Anda bekerja untuk Contoso, perusahaan yang menjual sepeda. Daftar sepeda yang tersedia disimpan dalam database Produk yang dapat Anda akses melalui API dalam konektor kustom. Tetapi katakanlah panggilan API lambat, sehingga Anda memutuskan untuk menyalin data produk dan menyimpannya secara lokal dalam tabel. Kemudian Anda membuat tampilan yang menggabungkan tabel Anda dengan data relevan lainnya untuk aplikasi Anda. Anda juga membuat alur Power Automate yang berjalan setiap hari dan memperbarui tabel Anda dengan data produk terbaru dari API. Kemudian aplikasi Anda dapat mengkueri data lokal lebih cepat, dan data hanya berumur paling lama satu hari.
Menduplikasi data adalah jenis teknik umum dalam aplikasi tingkat perusahaan untuk memastikan performa yang baik. Anda dapat menggunakan plug-in Dataverse, prosedur tersimpan, atau pergerakan data untuk menduplikasi data ke dalam satu tabel yang dioptimalkan untuk pengkuerian. Pertanyaan utamanya adalah: seberapa terbaru data ini? Jika Anda mampu melakukan penundaan, Anda dapat menggunakan teknik ini untuk mempercepat aplikasi Anda.
Suggestions
Untuk mencapai tujuan ini, pertimbangkan pertanyaan dan saran berikut:
- Seberapa penting bagi pelanggan untuk melihat nilai data di galeri atau kisi data? Apakah dapat diterima untuk terlebih dahulu memilih rekaman lalu memperlihatkan data dalam formulir?
- Dapatkah tampilan melakukan pra-kerja yang diperlukan untuk melihat data dalam format yang tepat?
- Apakah Anda menggunakan operator "IN" ketika "StartsWith" bisa digunakan?
- Seberapa mutakhirkah data Anda harusnya? Apakah ada strategi duplikasi data yang bisa Anda gunakan untuk membuat kueri Anda berfungsi melalui satu tabel secara default?