Menyetel kueri dengan Asisten Penyetelan Kueri (QTA)

Selesai

Anda memutuskan untuk menggunakan Penyimpanan Kueri untuk memantau performa database sebelum migrasi dan membandingkan data ini dengan performa setelah peningkatan. Anda berencana menggunakan Query Tuning Assistant (QTA) untuk menemukan kueri yang diregresi dan menyarankan peningkatan. Unit ini menjelaskan langkah-langkah untuk menggunakan Penyimpanan Kueri dan QTA untuk mempertahankan performa kueri.

Karena aplikasi database Anda adalah sistem penting yang mendukung operasi bisnis, Anda harus memiliki rencana tindakan dan rencana kontingensi untuk peningkatan. Meningkatkan database produksi inti satu per satu. Tentukan rencana pengujian untuk database yang ditingkatkan untuk memastikan setiap database kembali dalam produksi tanpa masalah sebelum Anda memutakhirkan yang lain.

Anda bisa menggunakan Penyimpanan Kueri untuk terus memantau performa kueri, dan untuk pengujian A/B untuk mengukur efek perubahan seperti peningkatan database. QTA menyediakan dukungan otomatis setelah peningkatan untuk menemukan dan memperbaiki kueri yang diregresi berdasarkan data yang diambil di Penyimpanan Kueri.

Agar QTA berfungsi dengan benar, Anda perlu menerapkan langkah-langkah berikut secara berurutan.

Penting

Pastikan untuk menggunakan database aplikasi produksi Anda, atau database dengan beban kerja aplikasi yang sangat cocok dengan beban kerja database produksi Anda, sehingga Query Store dapat mengumpulkan metrik realistis pada kueri.

  1. Migrasikan database ke SQL Server 2022.
  2. Biarkan tingkat kompatibilitas tidak berubah pada versi SQL Server sebelumnya.
  3. Aktifkan Penyimpanan Kueri pada database.
  4. Biarkan Penyimpanan Kueri mengumpulkan metrik dasar pada kueri berdasarkan aktivitas pengguna yang cukup realistis.
  5. Tingkatkan tingkat kompatibilitas ke SQL Server 2022 (160).
  6. Sekali lagi biarkan Penyimpanan Kueri mengumpulkan data pada kueri berdasarkan aktivitas pengguna yang cukup realistis.
  7. Gunakan QTA untuk membandingkan performa kueri sebelum dan sesudah perubahan tingkat kompatibilitas database. Jika kueri yang diregresi ditemukan, identifikasi perbaikan.

Memigrasikan database

Saat Anda siap untuk pindah ke SQL Server 2022, mulailah dengan memigrasikan database Anda ke instans baru. Ada beberapa cara untuk melakukan migrasi ini. Misalnya, Anda dapat menggunakan pencadangan dan pemulihan langsung, menggunakan pencerminan data base, atau menggunakan muatan massal. Pilihan yang paling tepat tergantung pada konfigurasi lingkungan Anda saat ini dan versi SQL Server tempat Anda bermigrasi. Azure Data Migration Service (DMS) adalah solusi yang baik, karena mendukung database dari SQL Server 2005 dan seterusnya.

Catatan

Azure DMS juga mendukung migrasi database ke Azure SQL Managed Instance. Gunakan ekstensi migrasi Azure SQL untuk Azure Data Studio untuk memulai.

Biarkan tingkat kompatibilitas tidak berubah

Setelah Anda memigrasikan database, biarkan tingkat kompatibilitas tidak berubah. Langkah ini sangat penting, karena Anda ingin garis besar diukur menggunakan konfigurasi database saat ini. Hingga Anda memindahkan tingkat kompatibilitas ke SQL Server 2014 (120) atau lebih tinggi, SQL Server menggunakan estimator kardinalitas warisan. SQL Server 2014 memperkenalkan estimator kardinalitas yang ditingkatkan yang menguntungkan sebagian besar kueri, tetapi jarang memiliki dampak performa negatif.

Mengaktifkan Penyimpanan Kueri

Meskipun tingkat kompatibilitas database tetap berada di versi sebelumnya, Anda bisa mengaktifkan Penyimpanan Kueri pada database, karena Penyimpanan Kueri adalah fitur tingkat server. Untuk mengaktifkan Penyimpanan Kueri:

  1. Di SQL Server Management Studio (SSMS), klik kanan database dan pilih Properti.
  2. Di jendela Properti Database, pilih Penyimpanan Kueri di panel kiri.
  3. Atur Mode Operasi (Diminta) ke Baca saja atau Baca tulis.
  4. Pilih OK.

Atau, Anda bisa menjalankan pernyataan berikut untuk mengaktifkan Penyimpanan Kueri dalam mode default READ WRITE :

ALTER DATABASE <database-name> SET QUERY_STORE = ON

Biarkan Penyimpanan Kueri mengumpulkan data

Letakkan kembali database yang dimigrasikan ke produksi dan alihkan koneksi database apa pun dari aplikasi atau laporan. Database mulai menerima kueri dari aplikasi produksi. Izinkan Penyimpanan Kueri berjalan cukup lama untuk mengumpulkan beban kerja realistis pada database.

Penyimpanan Kueri harus menangkap siklus aktivitas bisnis yang khas, termasuk jam kerja, pemrosesan malam hari, jendela pemeliharaan, dan aktivitas lainnya. Untuk banyak bisnis, aktivitas seminggu cukup, tetapi untuk beberapa bisnis periode ini mungkin lebih pendek atau lebih lama.

Banyak bisnis memiliki siklus bisnis utama, dan oleh karena itu aktivitas unik, untuk penggajian dua kali maupun pemrosesan akhir bulan. Anda harus mengetahui waktu siklus bisnis yang dialami database Anda. Untuk toko kelontong, siklus kedatangan dan restocking inventaris mingguan mencakup sebagian besar aktivitas database.

Anda bisa melihat data yang dikumpulkan dengan menelusuri tab Penyimpanan Kueri. Untuk melihat tab, di SSMS Object Explorer, perluas pohon database untuk menampilkan Penyimpanan Kueri. Setelah puas bahwa cukup data yang dikumpulkan, Anda dapat menjadwalkan peningkatan.

Meningkatkan tingkat kompatibilitas

Sebelum membuat perubahan pada database, ada baiknya untuk mencadangkan database, di luar jam kerja jika memungkinkan. Setelah mengambil cadangan Anda, tingkatkan tingkat kompatibilitas sebagai berikut:

  1. Klik kanan database di SSMS Object Explorer dan pilih Properti.
  2. Di jendela Properti Database, pilih tab Opsi .
  3. Ubah tingkat kompatibilitas ke SQL Server 2022 (160), dan pilih OK.

Atau, Anda dapat menjalankan pernyataan berikut:

ALTER DATABASE <database-name> SET COMPATIBILITY_LEVEL = 160

Biarkan Penyimpanan Kueri terus mengumpulkan data

Setelah database Anda ditingkatkan dan aplikasi dilanjutkan, Penyimpanan Kueri terus berjalan di latar belakang untuk mengumpulkan metrik untuk kueri. Kueri sekarang terpapar potensi masalah karena estimator kardinalitas baru yang digunakan pengoptimal kueri.

Lanjutkan menjalankan Penyimpanan Kueri dan izinkan untuk mengumpulkan data selama durasi yang sama seperti sebelum pemutakhiran. Namun, regresi kueri mungkin segera muncul sehingga Anda dapat mengambil tindakan untuk segera memulihkan masalah performa apa pun.

Menjalankan Asisten Penyetelan Kueri

Jalankan QTA untuk mengatasi kueri regresi apa pun. Untuk mengonfigurasi QTA:

  1. Klik kanan database di Object Explorer SQL Server Management Studio dan pilih Sesi Peningkatan Database Baru Peningkatan>Database Tugas.>
  2. Pada layar Penyiapan Wizard Asisten Penyetelan Kueri, masukkan durasi Beban Kerja (hari) untuk mengambil dan Tingkat Kompatibilitas Database Target.
  3. Pilih Berikutnya untuk mengonfigurasi layar Pengaturan dan Penyetelan.
  4. Pilih Selesai.

Untuk memantau QTA, klik kanan nama database, pilih >Tugas Database Upgrade>Monitor Sessions. QTA memberi Anda laporan ringkasan untuk kueri paling regresi, membandingkan data yang diamati dengan data dasar. Anda kemudian dapat melihat perubahan yang direkomendasikan QTA untuk menyetel kueri di mana performa telah diturunkan.

Ringkasan

Gunakan QTA setelah peningkatan database Anda untuk menemukan dan memperbaiki kueri yang mengalami kemunculan sebagai akibat dari peningkatan. Agar QTA menemukan kueri yang diregresi, Anda harus terlebih dahulu membuat garis besar dengan menggunakan Penyimpanan Kueri untuk mengukur kueri di tingkat kompatibilitas yang lama.

Penyimpanan Kueri kemudian mengumpulkan metrik setelah pemutakhiran, yang bisa Anda gunakan dengan QTA untuk membandingkan performa baru dengan garis besar. Sangat penting untuk operasi QTA bahwa Penyimpanan Kueri mengumpulkan data sebelum dan sesudah peningkatan.

Ketika QTA mengidentifikasi kueri yang diregresi, QTA bereksperimen untuk menemukan tindakan terbaik untuk meningkatkan performa. Anda kemudian dapat menerapkan tindakan ini.