Rekomendasi performa SQL Database Advisor untuk Azure SQL Database

Berlaku untuk:Azure SQL Database

Azure SQL Database belajar dan beradaptasi dengan aplikasi Anda. Azure SQL Database memiliki sejumlah penasihat database yang menyediakan rekomendasi khusus yang memungkinkan Anda memaksimalkan performa. Penasihat database ini terus menilai dan menganalisis riwayat penggunaan dan memberikan rekomendasi berdasarkan pola beban kerja yang membantu meningkatkan performa.

Gambaran umum performa

Gambaran umum performa di portal Azure menyediakan ringkasan performa database Anda, dan membantu Anda dengan penyetelan dan pemecahan masalah performa.

  • Jika ada, petak peta Rekomendasi menyediakan perincian rekomendasi penyetelan untuk database Anda. Memilih petak peta ini akan membawa Anda ke opsi Rekomendasi performa.
  • Petak peta Aktivitas penyetelan menyediakan ringkasan tindakan penyetelan yang sedang berlangsung dan selesai untuk database Anda, memberi Anda tampilan cepat ke dalam riwayat aktivitas penyetelan. Memilih petak peta ini akan membawa Anda ke rekomendasi dan riwayat penyetelan untuk database Anda. Untuk informasi selengkapnya, lihat penyetelan otomatis.
  • Petak peta Penyetelan otomatis memperlihatkan konfigurasi penyetelan otomatis untuk database Anda (opsi penyetelan yang secara otomatis diterapkan ke database Anda). Memilih petak peta ini akan membuka dialog konfigurasi otomatisasi. Untuk informasi selengkapnya tentang penyetelan otomatis indeks database dan rencana eksekusi kueri, lihat penyetelan otomatis.
  • Petak peta Kueri database memperlihatkan ringkasan performa kueri untuk database Anda (keseluruhan penggunaan DTU dan kueri penggunaan sumber daya teratas). Memilih petak peta ini akan membawa Anda ke Wawasan Performa Kueri.
  • Bagan default menyediakan tampilan ringkasan aktivitas database 24 jam terakhir, dengan opsi untuk memperbesar ke aktivitas yang lebih baru. Grafik batang bertumpuk menganalisis kueri teratas menurut CPU, dan grafik multibaris mewakili beban kerja berdasarkan CPU, IO Data, dan IO Log. Pilih bilah bertumpuk individual dalam grafik, yang masing-masing mewakili rencana kueri yang di-cache. Selaraskan halaman Wawasan Performa Kueri dan identifikasi kueri termahal dalam beban kerja Anda. Untuk informasi selengkapnya, lihat Wawasan Performa Kueri.

Navigasi ke halaman Gambaran umum performa di bawah Performa Cerdas di menu navigasi portal Azure untuk database Azure SQL Anda.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Opsi rekomendasi performa

Opsi rekomendasi performa yang tersedia di Azure SQL Database adalah:

Rekomendasi performa Database tunggal dan dukungan database kumpulan Dukungan database instans
Membuat rekomendasi indeks - Merekomendasikan pembuatan indeks yang dapat meningkatkan performa beban kerja Anda. Ya Tidak
Menghilangkan rekomendasi indeks - Merekomendasikan penghapusan indeks redundan dan duplikat setiap hari, kecuali untuk indeks unik, dan indeks yang belum digunakan untuk waktu yang lama (>90 hari). Perhatikan bahwa opsi ini tidak kompatibel dengan aplikasi menggunakan pengalihan partisi dan petunjuk indeks. Menghilangkan indeks yang tidak digunakan tidak didukung untuk tingkat layanan Premium dan Bisnis Kritis. Ya Tidak
Parameterisasi rekomendasi kueri (pratinjau) - Merekomendasikan parameterisasi paksa barangkali Anda memiliki satu atau beberapa kueri yang terus-menerus diolah ulang tetapi berakhir dengan rencana eksekusi kueri yang sama. Ya Tidak
Rekomendasi perbaikan masalah skema (pratinjau) - Rekomendasi untuk koreksi skema muncul saat Azure SQL Database melihat anomali dalam jumlah galat SQL terkait skema yang terjadi di database Anda. Microsoft saat ini sedang menghentikan rekomendasi "Perbaiki masalah skema". Ya Tidak

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

Untuk menerapkan rekomendasi performa, lihat menerapkan rekomendasi. Untuk melihat status rekomendasi, lihat Memantau operasi.

Anda juga dapat menemukan riwayat lengkap tindakan penyetelan yang diterapkan di masa lalu.

Membuat rekomendasi indeks

Azure SQL Database terus memantau kueri yang sedang berjalan dan mengidentifikasi indeks yang dapat meningkatkan performa. Setelah ada cukup keyakinan bahwa indeks tertentu hilang, rekomendasi Buat indeks baru dibuat.

Azure SQL Database membangun kepercayaan diri dengan memperkirakan perolehan performa yang akan dibawa indeks melalui waktu. Tergantung pada estimasi perolehan performa, rekomendasi dikategorikan sebagai tinggi, sedang, atau rendah.

Indeks yang dibuat dengan menggunakan rekomendasi selalu ditandai sebagai indeks yang dibuat secara otomatis. Anda dapat melihat indeks mana yang dibuat secara otomatis dengan melihat tampilan sys.indexes. Indeks yang dibuat otomatis tidak memblokir perintah ALTER/RENAME.

Jika Anda mencoba menghilangkan kolom yang memiliki indeks yang dibuat otomatis di atasnya, perintah akan melewatinya. Indeks yang dibuat otomatis juga dihilangkan dengan perintah. Indeks reguler memblokir perintah ALTER/RENAME pada kolom yang diindeks.

Setelah rekomendasi buat indeks diterapkan, Azure SQL Database membandingkan performa kueri dengan performa garis besar. Jika indeks baru meningkatkan performa, rekomendasi ditandai sebagai berhasil dan laporan dampak tersedia. Jika tidak meningkatkan performa, indeks akan dikembalikan secara otomatis. Azure SQL Database menggunakan proses ini untuk memastikan bahwa rekomendasi meningkatkan performa database.

Setiap rekomendasi buat indeks memiliki kebijakan back-off yang tidak memungkinkan menerapkan rekomendasi jika penggunaan sumber daya database atau kumpulan tinggi. Kebijakan back-off memperhitungkan CPU, Data IO, Log IO, dan penyimpanan yang tersedia.

Jika CPU, data IO, log IO lebih tinggi dari 80% dalam 30 menit sebelumnya, rekomendasi buat indeks ditunda. Jika penyimpanan yang tersedia akan berada di bawah 10% setelah indeks dibuat, rekomendasi masuk ke status kesalahan. Jika setelah beberapa hari penyetelan otomatis masih percaya bahwa indeks akan bermanfaat, proses dimulai lagi.

Proses ini berulang hingga ada penyimpanan yang tersedia untuk membuat indeks, atau hingga indeks tidak dipandang sebagai bermanfaat lagi.

Menghilangkan rekomendasi indeks

Selain mendeteksi indeks yang hilang, Azure SQL Database terus menganalisis performa indeks yang ada. Jika indeks tidak digunakan, Azure SQL Database merekomendasikan untuk menghilangkannya. Menghilangkan indeks disarankan dalam dua kasus:

  • Indeks adalah duplikat dari indeks lain (kolom terindeks dan disertakan yang sama, skema partisi, dan filter).
  • Indeks belum digunakan untuk jangka waktu yang lama (>90 hari).

Rekomendasi drop index juga melalui verifikasi setelah pelaksanaan. Jika performa membaik, laporan dampak akan tersedia. Jika performa terdegradasi, rekomendasi akan dikembalikan.

Rekomendasi parameterisasi kueri (pratinjau)

Rekomendasi Parameterisasi kuerinda muncul ketika Anda memiliki satu atau beberapa kueri yang terus-menerus diolah ulang tetapi berakhir dengan rencana eksekusi kueri yang sama. Kondisi ini menciptakan peluang untuk menerapkan parameterisasi paksa. Parameterisasi paksa, pada gilirannya, memungkinkan rencana kueri untuk di-cache dan digunakan kembali di masa depan, yang meningkatkan performa dan mengurangi penggunaan sumber daya.

Setiap kueri awalnya perlu dikompilasi untuk menghasilkan rencana eksekusi. Setiap paket yang dihasilkan ditambahkan ke cache paket. Eksekusi berikutnya dari kueri yang sama dapat menggunakan kembali paket ini dari cache, yang menghilangkan kebutuhan untuk kompilasi tambahan.

Kueri dengan nilai non-parameter dapat menyebabkan kinerja di atas kepala karena rencana eksekusi disusun ulang setiap kali nilai non-parameter berbeda. Dalam banyak kasus, kueri yang sama dengan nilai parameter yang berbeda menghasilkan rencana eksekusi yang sama. Namun, rencana ini masih ditambahkan secara terpisah ke cache rencana.

Proses pendampingan ulang paket eksekusi menggunakan sumber daya database, meningkatkan waktu durasi kueri, dan meluapkan singgahan rencana. Peristiwa ini, pada gilirannya, menyebabkan rencana untuk dikeluarkan dari tembolok. Perilaku ini dapat diubah dengan mengatur opsi parameterisasi paksa pada database.

Untuk membantu Anda memperkirakan dampak rekomendasi ini, Anda diberikan perbandingan antara penggunaan CPU aktual dan penggunaan CPU yang diproyeksikan (seolah-olah rekomendasi diterapkan). Rekomendasi ini dapat membantu Anda mendapatkan penghematan CPU. Rekomendasi ini juga dapat membantu Anda mengurangi durasi kueri dan overhead untuk cache rencana, yang berarti bahwa lebih banyak rencana dapat tetap berada di cache dan digunakan kembali. Anda dapat menerapkan rekomendasi ini dengan cepat dengan memilih perintah Terapkan.

Setelah Anda menerapkannya, rekomendasi ini memungkinkan parameterisasi paksa dalam beberapa menit di database Anda. Proses ini memulai proses pemantauan, yang berlangsung selama sekitar 24 jam. Setelah periode ini, Anda dapat melihat laporan validasi. Laporan ini menunjukkan penggunaan CPU database Anda 24 jam sebelum dan sesudah rekomendasi diterapkan. Azure SQL Database Advisor memiliki mekanisme keamanan yang secara otomatis mengembalikan rekomendasi yang diterapkan jika regresi performa telah terdeteksi.

rekomendasi Perbaikan masalah skema (pratinjau)

Penting

Microsoft saat ini sedang menghentikan rekomendasi "Perbaiki masalah skema". Kami menyarankan agar Anda menggunakan Insight Cerdas untuk memantau masalah performa database Anda, termasuk masalah skema yang sebelumnya dicakup oleh rekomendasi "Memperbaiki masalah skema".

Rekomendasi perbaikan masalah skema muncul saat Azure SQL Database melihat anomali dalam jumlah galat SQL terkait skema yang terjadi di database Anda. Rekomendasi ini biasanya muncul ketika database Anda mengalami beberapa kesalahan terkait skema (nama kolom yang tidak valid, nama objek yang tidak valid, dan sebagainya) dalam waktu satu jam.

"Masalah skema" adalah kelas kesalahan sintaks. Hal itu terjadi ketika definisi kueri SQL dan definisi skema database tidak diratakan. Misalnya, salah satu kolom yang diharapkan oleh kueri mungkin hilang dalam tabel target, atau sebaliknya.

Rekomendasi "memperbaiki masalah skema" muncul saat Azure SQL Database melihat anomali dalam jumlah galat SQL terkait skema yang terjadi di database Anda. Tabel berikut ini memperlihatkan kesalahan yang terkait dengan masalah skema:

Kode galat SQL Pesan
201 Prosedur atau fungsi '' mengharapkan parameter '', yang tidak disediakan.
207 Nama kolom tidak valid: '*'.
208 Nama objek tidak valid '*'.
213 Nama kolom atau jumlah nilai yang disediakan tidak cocok dengan definisi tabel.
2812 Tak bisa menemukan prosedur tersimpan '*'.
8144 Prosedur atau fungsi * memiliki terlalu banyak argumen yang ditentukan.

Aplikasi kustom

Pengembang mungkin mempertimbangkan untuk mengembangkan aplikasi kustom menggunakan rekomendasi performa untuk Azure SQL Database. Semua rekomendasi yang tercantum di portal untuk database dapat diakses melalui API Get-AzSqlDatabaseRecommendedAction.

Langkah berikutnya

  • Untuk informasi selengkapnya tentang penyetelan otomatis indeks database dan paket eksekusi kueri, lihat Penyetelan otomatis Azure SQL Database.
  • Untuk informasi selengkapnya tentang pemantauan performa database secara otomatis dengan diagnostik otomatis dan analisis akar penyebab masalah performa, lihat Wawasan Cerdas Azure SQL.
  • Lihat Wawasan Performa Kueri untuk mempelajari dan meninjau dampak performa dari kueri teratas Anda.