Bagikan melalui


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 serupa atau lebih baik setelah migrasi, jadi penting untuk mengukur dan merekam nilai performa garis besar pada sumber dan kemudian membandingkannya 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 di server sumber, seperti penggunaan CPU rata-rata/maks, latensi IO disk rata-rata/maks, throughput, IOPS, harapan hidup halaman rata-rata/maks, dan ukuran tempdbmaksimum rata-rata .

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.
  • Pantau beban kerja dan performa kueri dengan memeriksa Tampilan Manajemen Dinamis (atau Penyimpanan Kueri jika Anda bermigrasi dari SQL Server 2016 dan yang lebih baru). Identifikasi durasi rata-rata dan penggunaan CPU dari kueri paling penting dalam beban kerja Anda.

Masalah performa apa pun pada SQL Server sumber 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 garis besar, bandingkan performa beban kerja serupa pada SQL Managed Instance target. Untuk akurasi, penting bahwa lingkungan SQL Managed Instance sebanding dengan lingkungan SQL Server sebanyak 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 berhasil mengonfirmasi bahwa migrasi berhasil.

  • Sebagian besar parameter dan kueri performa dalam beban kerja berfungsi seperti yang diharapkan, dengan beberapa pengecualian mengakibatkan penurunan performa. Dalam hal ini, identifikasikan perbedaan dan kepentingannya. Jika ada beberapa kueri penting dengan performa yang terdegradasi, selidiki apakah paket SQL yang mendasarinya telah berubah, atau apakah kueri mencapai 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 berfungsi dengan baik di masa lalu tidak terdegradasi di masa mendatang. Jika fitur ini tidak diaktifkan, jalankan beban kerja dengan pengaturan lama sehingga 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 lebih banyak memori.
  • Statistik seperti INSTANCE_LOG_GOVERNOR atau PAGEIOLATCH yang mengidentifikasi masalah IO penyimpanan, terutama pada tingkat Tujuan Umum, di mana Anda mungkin perlu melakukan pra-alokasi file untuk mendapatkan performa IO yang lebih baik.

Pertimbangan

Saat membandingkan performa, pertimbangkan persyaratan 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 melakukan pra-alokasi ukuran file 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.