Performa migrasi: Garis besar performa SQL Server ke Azure SQL Managed Instance

Berlaku untuk:Azure SQL Managed Instance

Buat garis besar performa untuk membandingkan performa beban kerja Anda pada SQL Managed Instance dengan beban kerja asli Anda yang berjalan di SQL Server.

Membuat garis besar

Idealnya, performa akan serupa atau lebih baik setelah migrasi, jadi penting untuk mengukur dan merekam nilai garis besar performa pada sumber dan kemudian bandingkan dengan lingkungan target. Garis besar performa adalah sekumpulan parameter yang menentukan beban kerja rata-rata pada sumber Anda.

Pilih sekumpulan kueri yang penting dan yang menjadi perwakilan dari beban kerja bisnis Anda. Ukur dan dokumentasikan durasi min/rata-rata/maks dan penggunaan CPU untuk kueri ini, serta metrik performa pada server sumber, seperti penggunaan CPU rata-rata/maks, latensi IO disk rata-rata/maks, throughput, IOPS, harapan hidup halaman rata-rata / maks, dan ukuran maksimum rata-rata tempdb.

Sumber berikut ini dapat membantu menentukan garis besar performa:

  • Memantau penggunaan CPU
  • Memantau penggunaan memori dan menentukan jumlah memori yang digunakan oleh komponen yang berbeda seperti kumpulan buffer, cache paket, kumpulan penyimpanan kolom, OLTP Dalam Memori, dll. Selain itu, Anda harus menemukan nilai rata-rata dan puncak penghitung kinerja memori Harapan Hidup Halaman.
  • Memantau penggunaan IO disk pada instans SQL Server sumber menggunakan tampilan sys.dm_io_virtual_file_stats atau penghitung kinerja.
  • Memantau beban kerja dan performa kueri atau instans SQL Server Anda dengan memeriksa Tampilan Manajemen Dinamis (atau Penyimpanan Kueri jika Anda melakukan migrasi dari versi SQL Server 2016 dan yang lebih baru). Identifikasi durasi rata-rata dan penggunaan CPU dari kueri paling penting dalam beban kerja Anda.

Setiap masalah performa pada sumber SQL Server harus ditangani sebelum migrasi. Migrasi masalah umum ke sistem baru dapat menyebabkan hasil yang tidak terduga dan membatalkan perbandingan performa apa pun.

Membandingkan performa

Setelah Anda menentukan sebuah garis besar, bandingkan performa beban kerja serupa pada target SQL Managed Instance. Untuk akurasi, penting untuk dipastikan bahwa lingkungan SQL Managed Instance sebanding dengan lingkungan SQL Server sedekat mungkin.

Ada perbedaan infrastruktur SQL Managed Instance yang membuat pencocokan performa dengan persis tidak mungkin. Beberapa kueri mungkin berjalan lebih cepat dari yang diharapkan, sementara yang lain mungkin lebih lambat. Tujuan dari perbandingan ini adalah untuk memverifikasi bahwa performa beban kerja dalam instans terkelola cocok dengan performa di SQL Server (rata-rata) dan untuk mengidentifikasi kueri penting dengan performa yang tidak cocok dengan performa asli Anda.

Perbandingan performa kemungkinan akan menghasilkan hasil berikut:

  • Performa beban kerja pada instans terkelola selaras atau lebih baik daripada performa beban kerja di sumber SQL Server Anda. Dalam hal ini, Anda telah berhasil mengonfirmasi bahwa migrasi berhasil.

  • Sebagian besar parameter performa dan kueri dalam beban kerja berfungsi seperti yang diharapkan, dengan beberapa pengecualian yang menghasilkan penurunan performa. Dalam hal ini, identifikasikan perbedaan dan kepentingannya. Jika ada beberapa kueri penting dengan penurunan performa, periksa apakah paket SQL yang mendasarinya berubah atau kueri mencapai beberapa batas sumber daya. Anda dapat mengurangi ini dengan menerapkan beberapa petunjuk tentang kueri penting (misalnya, mengubah tingkat kompatibilitas, estimator kardinalitas warisan) baik secara langsung atau menggunakan panduan rencana. Pastikan statistik dan indeks sudah diperbarui dan setara di kedua lingkungan tersebut.

  • Sebagian besar kueri lebih lambat pada instans terkelola dibandingkan dengan instans SQL Server sumber Anda. Dalam hal ini, cobalah untuk mengidentifikasi akar penyebab perbedaan seperti mencapai beberapa batas sumber daya seperti IO, memori, atau batas laju log instans. Jika tidak ada batas sumber daya yang menyebabkan perbedaan, coba ubah tingkat kompatibilitas database atau ubah pengaturan database seperti estimasi kardinalitas warisan dan jalankan ulang pengujian. Tinjau rekomendasi yang disediakan oleh instans terkelola atau tampilan Penyimpanan Kueri untuk mengidentifikasi kueri yang mengalami kemunduran performa.

SQL Managed Instance memiliki fitur koreksi paket otomatis bawaan yang diaktifkan secara default. Fitur ini memastikan bahwa kueri yang bekerja dengan baik tidak akan menurun di masa mendatang. Jika fitur ini tidak diaktifkan, jalankan beban kerja dengan pengaturan lama sehingga Azure SQL Managed Instance dapat mempelajari garis besar performa. Kemudian, aktifkan fitur dan jalankan beban kerja lagi dengan pengaturan baru.

Buat perubahan pada parameter pengujian atau tingkatkan ke tingkat layanan yang lebih tinggi untuk mencapai konfigurasi optimal untuk performa beban kerja yang sesuai dengan kebutuhan Anda.

Memantau performa

Azure SQL Managed Instance menyediakan banyak alat canggih untuk pemantauan dan pemecahan masalah, dan Anda harus menggunakannya untuk memantau performa pada instans Anda. Beberapa metrik utama untuk dipantau adalah:

  • Penggunaan CPU pada instans untuk menentukan apakah jumlah vCores yang Anda sediakan sesuai dengan beban kerja Anda.
  • Harapan hidup halaman pada instans terkelola Anda untuk menentukan apakah Anda memerlukan memori tambahan.
  • Statistik seperti INSTANCE_LOG_GOVERNOR atau PAGEIOLATCH yang mengidentifikasi masalah IO penyimpanan, terutama pada tingkat Tujuan Umum, yang mana Anda mungkin perlu mengalokasikan file terlebih dahulu untuk mendapatkan performa IO yang lebih baik.

Pertimbangan

Saat membandingkan performa, pertimbangkan hal berikut:

  • Pengaturan yang cocok antara sumber dan target. Validasi bahwa berbagai instans, database, dan tempdb pengaturan setara antara kedua lingkungan. Perbedaan dalam konfigurasi, tingkat kompatibilitas, pengaturan enkripsi, bendera pelacakan, dll., dapat semua performa condong.

  • Penyimpanan dikonfigurasi sesuai dengan praktik terbaik. Misalnya, untuk Tujuan Umum, Anda mungkin perlu mengalokasikan ukuran file sejak awal untuk meningkatkan performa.

  • Ada perbedaan lingkungan utama yang dapat menyebabkan perbedaan performa antara instans terkelola dan SQL Server. Identifikasi risiko yang relevan dengan lingkungan Anda yang mungkin berkontribusi pada masalah performa.

  • Penyimpanan kueri dan penyetelan otomatis harus diaktifkan pada Azure SQL Managed Instance Anda karena membantu Anda mengukur performa beban kerja dan secara otomatis mengurangi potensi masalah performa.

Langkah berikutnya

Untuk informasi selengkapnya guna mengoptimalkan lingkungan Azure SQL Managed Instance baru Anda, lihat sumber berikut ini: