Rekomendasi untuk mengoptimalkan performa data

Berlaku untuk rekomendasi daftar periksa Efisiensi Kinerja yang Dirancang dengan Baik ini Power Platform :

PE:08 Optimalkan kinerja data. Optimalkan penyimpanan data untuk tujuan dan penggunaan aktual dalam beban kerja.

Panduan ini menjelaskan rekomendasi untuk mengoptimalkan performa data. Mengoptimalkan performa data adalah tentang menyempurnakan efisiensi pemrosesan dan penyimpanan data beban kerja. Setiap operasi, transaksi, atau komputasi beban kerja biasanya bergantung pada pengambilan, pemrosesan, dan penyimpanan data yang cepat dan akurat. Saat performa data dioptimalkan, beban kerja berjalan dengan lancar. Performa data yang dikompromikan menciptakan efek domino dari efisiensi kinerja yang buruk. Kegagalan untuk mengoptimalkan performa data mengakibatkan penundaan respons, latensi yang meningkat, dan skalabilitas yang terbatas. Ini membahayakan efisiensi seluruh beban kerja.

Definisi

Istilah Devinisi
Penyimpanan data Sumber daya yang menyimpan data seperti database, penyimpanan objek, atau berbagi file.
Indeks Struktur database yang menyediakan akses cepat ke item.
Pemrosesan analitik online (OLAP) Teknologi yang mengatur database bisnis besar, mendukung analisis kompleks, dan melakukan kueri analitik yang kompleks tanpa memengaruhi sistem transaksional secara negatif.
Pemrosesan transaksi online (OLTP) Teknologi yang merekam interaksi bisnis yang terjadi dalam operasi sehari-hari suatu organisasi.
Partisi Proses membagi data secara fisik menjadi penyimpanan data terpisah.
Penyetelan kueri Proses yang mengoptimalkan kecepatan kueri database.

Strategi desain utama

Untuk mengoptimalkan penggunaan data, pastikan penyimpanan data dioptimalkan untuk tujuan penggunaan dan untuk penggunaan aktual dalam beban kerja. Penggunaan data yang dioptimalkan dapat meningkatkan performa kueri, mengurangi konsumsi sumber daya, dan meningkatkan efisiensi sistem secara keseluruhan. Pertimbangkan strategi berikut:

  • Data profil. Pahami data Anda dan pastikan bahwa model data Anda sangat cocok untuk beban kerja Anda. Pertimbangkan faktor-faktor seperti normalisasi data dan teknik partisi. Untuk pengambilan data yang efisien, pastikan Anda memilih jenis data yang sesuai dan menentukan hubungan antar tabel.

  • Mengoptimalkan performa kueri. Menganalisis dan mengoptimalkan kueri yang berjalan dalam beban kerja. Gunakan teknik seperti pengoptimalan kueri dan caching. Gunakan tampilan sisi server untuk memfilter data terlebih dahulu. Untuk mengidentifikasi kemacetan, gunakan alat pemantauan kinerja, lalu lakukan perbaikan yang diperlukan.

  • Pantau dan sesuaikan sistem secara teratur. Pantau terus performa beban kerja Anda dan iterasi konfigurasi penyimpanan data dan pengoptimalan kueri. Berdasarkan praktik terbaik penyetelan kinerja, analisis metrik sistem, identifikasi area perbaikan, dan terapkan perubahan. Seiring bertambahnya data, Anda mungkin harus memperbarui kueri agar tetap berperforma.

Data profil

Pembuatan profil data melibatkan pemeriksaan data dari sumber dan mengumpulkan informasi tentangnya. Tujuannya adalah untuk memahami kualitas, struktur, dan karakteristik data beban kerja. Proses ini memungkinkan identifikasi masalah seperti nilai yang hilang, duplikat, format yang tidak konsisten, dan anomali lainnya.

Untuk pembuatan profil data yang efektif, pertimbangkan strategi berikut:

  • Pahami struktur data. Periksa struktur data Anda, termasuk tabel, kolom, dan hubungan. Tentukan tipe data, panjang, dan batasan yang diterapkan ke setiap kolom. Evaluasi struktur data membantu Anda memahami bagaimana data diatur dan bagaimana kaitannya dengan elemen data lainnya.

  • Analisis volume data. Menilai volume data Anda untuk memahami ukuran dan pola pertumbuhan secara keseluruhan. Tentukan jumlah rekaman atau dokumen dan ukuran tabel atau koleksi individual. Informasi ini membantu Anda memperkirakan persyaratan penyimpanan dan mengidentifikasi masalah skalabilitas.

  • Mengidentifikasi hubungan data. Jelajahi hubungan antar elemen data. Pahami bagaimana data terhubung, sehingga Anda dapat menentukan bagaimana perubahan dalam satu tabel atau dokumen dapat memengaruhi data terkait.

  • Menilai kualitas data. Evaluasi kualitas data Anda dengan memeriksa faktor-faktor seperti kelengkapan, akurasi, konsistensi, dan keunikan. Identifikasi anomali data, nilai yang hilang, atau rekaman duplikat yang mungkin memengaruhi integritas data dan performa kueri. Langkah ini membantu Anda mengidentifikasi area untuk pembersihan dan peningkatan data.

  • Menangkap distribusi data. Analisis distribusi nilai dalam setiap kolom untuk menentukan pola data. Mengidentifikasi nilai yang sering dan langka, outlier, dan kemiringan data. Untuk mengoptimalkan performa kueri, analisis apakah kunci alternatif sesuai untuk memberikan performa yang lebih baik.

Memantau performa data

Pemantauan kinerja data adalah praktik melacak efisiensi penyimpanan data secara konsisten. Ini melibatkan pengumpulan dan analisis metrik kinerja khusus untuk operasi data, menggunakan alat yang disesuaikan untuk solusi pemantauan tingkat sistem, khusus database, atau pihak ketiga. Pemantauan kinerja data yang efektif memungkinkan Anda untuk secara proaktif mengidentifikasi dan mengurangi potensi kemacetan, memastikan bahwa proses dan tugas terkait data efisien.

Untuk memantau performa data, pertimbangkan strategi berikut:

  • Kumpulkan metrik khusus data. Kumpulkan metrik utama yang berhubungan langsung dengan performa data. Metrik ini mencakup waktu respons kueri dan throughput data.

  • Siapkanpemberitahuan data. Siapkan pemberitahuan khusus untuk metrik data. Gunakan ambang batas atau anomali yang telah ditentukan sebelumnya dalam metrik ini untuk memicu pemberitahuan. Pemberitahuan memungkinkan Anda menerima pemberitahuan saat metrik performa melebihi rentang yang dapat diterima atau menunjukkan perilaku abnormal; misalnya, jika kueri database membutuhkan waktu lebih lama dari yang diharapkan atau jika throughput data turun secara signifikan. Anda dapat menyiapkan pemberitahuan ini menggunakan alat pemantauan khusus atau skrip kustom.

  • Mendiagnosis masalah performa data. Tinjau metrik data yang dikumpulkan secara teratur untuk mengidentifikasi potensi kemacetan kinerja atau penurunan dalam operasi data. Alat visualisasi atau dasbor dapat sangat berharga dalam proses ini, membantu menyoroti tren, kemacetan, dan outlier dalam performa data. Setelah diidentifikasi, selidiki akar penyebab masalah ini dan rencanakan langkah-langkah remediasi yang sesuai.

Data partisi

Partisi melibatkan pembagian himpunan data besar atau beban kerja bervolume tinggi menjadi subset yang lebih kecil dan dapat dikelola. Partisi meningkatkan efisiensi performa data dengan mendistribusikan beban kerja dan meningkatkan pemrosesan paralel. Ini juga memastikan akses data yang lebih efektif berdasarkan kebutuhan dan pola kueri tertentu. Anda dapat mempartisi data secara vertikal atau horizontal (juga disebut sharding). Misalnya, jika menggunakan Dataverse tabel Elastis, pertimbangkan apa yang seharusnya menjadi kunci partisi.

Strategi Devinisi Contoh Gunakan kasus
Partisi vertikal Bagi tabel menjadi tabel yang lebih kecil dengan memilih kolom atau bidang tertentu untuk setiap partisi. Setiap partisi mewakili subset dari data lengkap. Jika Anda memiliki tabel dengan kolom A, B, C, dan D, Anda dapat membuat satu tabel dengan kolom A dan B dan satu lagi dengan kolom C dan D. - Tabel berisi banyak kolom, tetapi kueri tidak mengakses semua kolom secara bersamaan.
- Beberapa kolom lebih besar dari yang lain dan memisahkannya dapat meningkatkan performa I/O.
- Bagian data yang berbeda memiliki pola akses yang beragam.
Partisi horizontal Pisahkan data berdasarkan baris atau rentang nilai (juga dikenal sebagai sharding). Setiap partisi berisi subset baris dengan karakteristik serupa. Jika Anda memiliki tabel dengan baris 1 hingga 1000, Anda dapat membuat satu partisi dengan baris 1 hingga 500 dan satu lagi dengan baris 501 hingga 1000. - Himpunan data terlalu besar untuk satu lokasi atau server.
- Data diakses berdasarkan rentang atau filter tertentu.
- Perlu mendistribusikan beban kerja di seluruh simpul atau server fisik untuk meningkatkan performa.

Untuk mempartisi data Anda, pertimbangkan langkah-langkah berikut:

  • Menganalisis data dan kueri. Analisis data dan pola kueri untuk mengidentifikasi strategi partisi atau sharding yang sesuai. Memahami sifat data, pola akses, dan persyaratan distribusi.

  • Tentukan kunci. Pilih kunci partisi atau sharding untuk mendistribusikan data di seluruh partisi atau serpihan. Pilih kunci dengan hati-hati berdasarkan karakteristik data dan persyaratan kueri.

  • Tentukan logika. Tentukan logika partisi atau sharding berdasarkan kunci yang dipilih. Pertimbangkan untuk membagi data menjadi beberapa rentang, menerapkan algoritme hashing, atau menggunakan teknik partisi lainnya.

Mengoptimalkan kueri

Mengoptimalkan kueri menyempurnakan kueri untuk mengurangi data yang memenuhi syarat dan data yang dikembalikan. Penyesuaian ini meningkatkan efisiensi dan kecepatan pengambilan data. Hasilnya, database memiliki beban kerja yang lebih ringan, sumber daya bekerja lebih efektif, dan pengguna menikmati interaksi yang lebih lancar.

Untuk mengoptimalkan kueri database, pertimbangkan strategi berikut:

  • Tulis ulang kueri. Tinjau dan analisis kueri kompleks untuk mengidentifikasi peluang untuk menulis ulang. Pertimbangkan untuk merestrukturisasi logika kueri, menghilangkan operasi yang berlebihan, atau menyederhanakan sintaks kueri.

  • Hindari masalah kueri N+1. Minimalkan jumlah perjalanan pulang pergi ke database dengan menggunakan gabungan dan pengambilan batch untuk mengambil data terkait secara efisien.

  • Menyusun ulang gabungan. Evaluasi dan pertimbangkan untuk mengatur ulang urutan gabungan untuk meminimalkan jumlah baris di setiap operasi gabungan. Urutan Anda menggabungkan tabel dapat memengaruhi performa kueri.

  • Kueri cache. Simpan hasil kueri yang sering dijalankan agar mudah digunakan kembali. Penembolokan kueri menghilangkan kebutuhan untuk berulang kali menjalankan kueri yang sama, dan mengurangi overhead pemrosesan kueri.

  • Pantau dan sesuaikan. Pantau metrik performa kueri, seperti runtime, pemanfaatan sumber daya, dan throughput kueri. Gunakan alat pembuatan profil database dan fungsionalitas pemantauan untuk mengidentifikasi kueri yang berkinerja buruk. Gunakan informasi tersebut untuk mengoptimalkan performa kueri.

Mengarsipkan dan membersihkan data

Pengarsipan dan pembersihan adalah strategi yang merampingkan penyimpanan data. Pengarsipan memindahkan data lama yang jarang diakses ke penyimpanan yang lebih hemat biaya. Membersihkan data secara permanen menghapus data yang berlebihan. Kedua metode tersebut berkontribusi pada efisiensi kinerja dengan mengurangi volume data, meningkatkan kecepatan akses data, dan mengurangi waktu pencadangan dan pemulihan.

  • Mengurangi volume data: Lebih sedikit data berarti waktu pemrosesan yang lebih cepat, memastikan respons cepat terhadap permintaan pengguna.
  • Meningkatkan kecepatan akses data: Himpunan data yang dipangkas memungkinkan kueri dan pengambilan data yang lebih cepat, mengoptimalkan responsivitas sistem.
  • Mengurangi waktu pencadangan dan pemulihan: Himpunan data yang lebih kecil mempercepat proses pencadangan dan pemulihan, meminimalkan waktu henti dan memastikan kinerja yang konsisten.

Pengarsipan dan pembersihan berperan penting dalam mempertahankan efisiensi kinerja puncak dalam sistem berbasis data.

Mengoptimalkan beban penyimpanan

Mengoptimalkan beban penyimpanan berarti merampingkan permintaan ke sistem penyimpanan. Ini membantu menghilangkan permintaan yang tidak perlu, meningkatkan pengambilan data, dan menghindari kewalahan sistem penyimpanan. Mengoptimalkan beban penyimpanan memastikan sistem penyimpanan tetap responsif terhadap permintaan yang sah dan mempertahankan performa puncak. Terapkan strategi untuk mengurangi beban pemrosesan pada penyimpanan data. Untuk mengoptimalkan beban penyimpanan data, pertimbangkan strategi berikut.

Gunakan caching

Caching menyimpan data yang umum diakses di area penyimpanan akses cepat, membuat pengambilan data lebih cepat daripada menariknya dari sumber utama. Teknik ini meningkatkan kinerja data dengan mengurangi waktu akses dan menghindari pengambilan data yang berulang. Caching meningkatkan kecepatan baca dan waktu respons pengguna, terutama untuk data yang sering diakses. Metode ini paling efektif pada data statis atau data yang jarang berubah.

Untuk memastikan efisiensi caching yang optimal, pertimbangkan faktor-faktor seperti kebijakan kedaluwarsa, strategi penggusuran, dan pengelolaan ukuran cache. Sesuaikan pengaturan, seperti waktu hidup (TTL), untuk kinerja yang optimal. Untuk menggunakan cache guna mengoptimalkan beban penyimpanan, pertimbangkan strategi berikut:

  • Caching dalam memori: Lakukan caching dalam memori untuk menyimpan data yang sering diakses dalam memori untuk pengambilan cepat. Anda dapat menggunakan teknik ini untuk data aplikasi yang mahal untuk dihitung atau diambil dari database. Caching dalam memori berguna untuk data yang sering Anda baca tetapi tidak sering berubah. Misalnya, Anda dapat menggunakan variabel dalam alur cloud atau koleksi di aplikasi kanvas untuk menyimpan data dalam cache.

  • Penembolokan kueri database: Gunakan teknik ini untuk menyimpan hasil kueri database untuk menghindari menjalankan kueri yang sama beberapa kali. Cache kueri database berguna untuk kueri database yang kompleks dan memakan waktu. Saat Anda menyimpan hasil kueri dalam cache, permintaan berikutnya untuk kueri yang sama dikembalikan dengan cepat. Pertimbangkan juga untuk menggunakan tampilan sisi server jika memungkinkan untuk memfilter data terlebih dahulu guna mempersempit data yang relevan dengan kueri Anda.

  • Caching jaringan pengiriman konten: Gunakan teknik ini untuk menyimpan konten web di server jaringan terdistribusi untuk mengurangi latensi dan meningkatkan pengiriman konten. Caching jaringan pengiriman konten efektif untuk konten statis, seperti gambar, CSS file, dan file JavaScript. Jaringan pengiriman konten menyimpan salinan konten di beberapa lokasi di seluruh dunia, sehingga pengguna dapat mengakses konten dari server yang dekat dengan mereka secara geografis.

Mengoptimalkan pembaruan data

Mengoptimalkan pembaruan data melibatkan evaluasi pembaruan data yang dilakukan untuk memastikannya berkinerja. Pembaruan dapat memengaruhi performa lebih dari operasi lain karena dapat memicu pekerjaan yang tidak perlu dan menyebabkan konflik penguncian.

Untuk mengevaluasi cara mengoptimalkan pembaruan data, pertimbangkan:

  • Perubahan data. Optimalkan otomatisasi untuk menggunakan pra-gambar data atau filter untuk meminimalkan pekerjaan ketika tidak ada perubahan aktual yang terjadi. Hindari memicu otomatisasi untuk data yang tidak dimodifikasi.

  • Otomatisasi. Evaluasi kapan dan bagaimana pembaruan dipicu berdasarkan perubahan data, dan optimalkan pemicu untuk menyertakan filter. Misalnya, untuk memicu otomatisasi hanya ketika bidang tertentu dalam sumber data dimodifikasi. Evaluasi pembaruan yang secara bertahap memicu otomatisasi beberapa kali. Sebagai gantinya, pertimbangkan apakah Anda dapat membuat operasi kustom untuk menangani semua pemrosesan. Misalnya, jika pesanan dikirimkan dan tanggal pengiriman serta nomor pelacakan diperbarui secara terpisah, keduanya dapat diperbarui secara bersamaan dalam operasi "ShipOrder" kustom.

  • Kebuntuan. Evaluasi operasi pembaruan lambat yang mungkin menyebabkan masalah karena beberapa alur memperbarui data yang sama dalam urutan yang berbeda. Inefisiensi ini dapat menyebabkan konflik penguncian atau bahkan potensi kebuntuan, yang mengakibatkan pengerjaan ulang yang tidak perlu. Perbarui sumber daya yang berbeda dalam urutan yang sama untuk meminimalkan perselisihan.

  • Pembaruan massal. Jika Anda menjalankan operasi pada beberapa baris tabel, pertimbangkan untuk menggunakan operasi massal.

Mengoptimalkan pergerakan dan pemrosesan data

Mengoptimalkan pergerakan dan pemrosesan data melibatkan peningkatan efisiensi dan kinerja operasi yang terkait dengan ekstraksi, transformasi, pemuatan, dan pemrosesan data. Pertimbangkan aspek utama berikut untuk mengoptimalkan pergerakan dan pemrosesan data:

  • Pengoptimalan ekstrak, transformasi, dan muat (ETL): Optimalkan proses ETL untuk meminimalkan waktu pemrosesan. Anda dapat merampingkan proses ekstraksi, menerapkan algoritme transformasi yang efisien, dan mengoptimalkan proses pemuatan. Saat Anda membuat setiap langkah efisien, Anda mengoptimalkan alur kerja secara keseluruhan.

  • Pemrosesan paralel: Gunakan teknik pemrosesan paralel untuk meningkatkan kinerja. Saat Anda mendistribusikan tugas pemrosesan data di beberapa utas atau simpul, Anda dapat membagi dan memproses beban kerja secara bersamaan, yang menghasilkan pemrosesan cepat.

  • Pemrosesan batch: Kelompokkan tugas serupa bersama-sama untuk mengurangi overhead yang disebabkan oleh operasi berulang. Proses beberapa tugas dalam batch untuk mengurangi waktu pemrosesan secara keseluruhan.

Desain untuk kedekatan data

Kedekatan data mengacu pada penempatan strategis data yang lebih dekat dengan pengguna atau layanan yang paling sering mengaksesnya. Mengurangi jarak fisik atau logis antara data dan penggunanya memastikan akses data yang lebih cepat dan responsivitas yang lebih baik. Untuk mengoptimalkan desain agar dekat, pertimbangkan strategi berikut:

  • Mengevaluasi pola akses data: Menilai pola akses beban kerja Anda dan data yang sering diakses. Analisis ini dapat membantu menentukan di mana menempatkan data untuk manfaat maksimal.

  • Pilih solusi yang mendukung relokasi data: Pertimbangkan solusi yang menawarkan relokasi data dinamis berdasarkan perubahan pola akses, memastikan pemosisian data yang optimal.

  • Pilih solusi yang mendukung sinkronisasi data: Jika Anda melayani basis pengguna terdistribusi, pilih solusi yang mengaktifkan sinkronisasi data di berbagai wilayah, untuk memastikan bahwa replika data tersedia di dekat pengguna.

Pengorbanan: Jika data yang mendasarinya sering berubah, terapkan mekanisme pembatalan cache untuk memastikan bahwa data yang di-cache tetap diperbarui.

Power Platform Fasilitasi

Memantau performa data: Untuk memantau performa data, pertimbangkan untuk menggunakan Azure Monitor untuk mengumpulkan dan menganalisis metrik infrastruktur, log, dan data aplikasi. Anda dapat mengintegrasikan Monitor dengan layanan lain seperti Application Insights. Application Insights menyediakan pemantauan kinerja aplikasi dan mendukung banyak platform.

Application Insights mengumpulkan data penggunaan dan kinerja. Anda dapat menggunakan Analitik Log untuk menghubungkan data tersebut dengan data konfigurasi dan performa di seluruh sumber daya Azure. Application Insights Aliran data for saat Dataverse ini menyediakan data performa yang terkait dengan Dataverse panggilan masuk API, Dataverse panggilan eksekusi plug-in, dan Dataverse panggilan SDK.

Mengoptimalkan pola data kueri di aplikasi kanvas: Ikuti panduan dan saran yang didokumentasikan. Lihat Pola data kueri yang dioptimalkan di. Power Apps

Optimalkan cara Anda menyesuaikan, memperluas, atau mengintegrasikan dengan Dataverse:Ikuti praktik dan panduan terbaik yang didokumentasikan. Lihat Praktik terbaik dan panduan saat menggunakan Microsoft Dataverse.

Mengoptimalkan kueri database dan performa indeks: Gunakan fitur wawasan performa kueri Azure SQL Database untuk mengoptimalkan kueri, tabel, dan database. Anda juga dapat menggunakan fitur ini untuk mengidentifikasi dan memecahkan masalah performa kueri.

Untuk database relasional, ikuti pedoman desain indeks, panduan indeks SQL Server, dan panduan Cosmos DB indeks Azure. Gunakan SQL Database untuk melakukan penyetelan otomatis untuk kueri guna meningkatkan performanya.

Untuk database SQL, Anda harus mengatur ulang atau membangun ulang indeks secara teratur. Identifikasi kueri lambat dan sesuaikan untuk meningkatkan performa. Banyak mesin database memiliki fitur penyetelan kueri. Untuk informasi selengkapnya, lihat praktik terbaik untuk performa kueri.

Azure Cosmos DB memiliki kebijakan pengindeksan default yang mengindeks setiap properti setiap item dan memberlakukan indeks rentang untuk string atau angka apa pun. Kebijakan ini memberi Anda performa kueri yang efisien, dan Anda tidak perlu mengelola indeks terlebih dahulu.

Mengoptimalkan beban penyimpanan: Banyak layanan database Azure mendukung replika baca. Ketersediaan dan konfigurasi replika baca bervariasi tergantung pada layanan database Azure. Lihat dokumentasi resmi untuk setiap layanan untuk memahami detail dan opsi.

Daftar periksa Efisiensi Kinerja

Lihat rangkaian lengkap rekomendasi.