Rekomendasi kinerja dari 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.

Tip

Coba Database Hub di Microsoft Fabric! Pusat Basis Data:

  • secara otomatis menemukan database Anda di Azure, Microsoft Fabric, on-premises, dan lingkungan multicloud yang didukung.
  • secara otomatis menyediakan dasbor yang sudah dibangun, dapat dikonfigurasi, dan dapat dibagikan.
  • secara otomatis mengidentifikasi prioritas utama dan rekomendasi dalam database Anda yang harus Anda selidiki atau koreksi.
  • sepenuhnya gratis.

Untuk informasi lebih lanjut, lihat Database Hub di Microsoft Fabric.

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 ubin ini akan membawa Anda ke Opsi rekomendasi kinerja.
  • 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 ubin ini akan mengarahkan Anda ke rekomendasi dan riwayat penyetelan untuk basis data 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. Buka halaman Wawasan Performa Kueri dan identifikasi kueri yang paling mahal dalam beban kerja Anda. Untuk informasi selengkapnya, lihat Wawasan Kinerja Kueri.

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

Cuplikan layar dari portal Azure Gambaran Umum Performa untuk Azure SQL Database.

Opsi rekomendasi performa

Opsi rekomendasi performa yang tersedia di Azure SQL Database adalah:

Rekomendasi kinerja Database tunggal dan dukungan database kumpulan Dukungan untuk 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
Rekomendasi parameterisasi kueri (pratinjau) - Merekomendasikan penggunaan parameterisasi paksa dalam kasus saat Anda memiliki satu atau beberapa kueri yang terus-menerus dikompilasi ulang tetapi menghasilkan 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

Cuplikan layar dari portal Azure memperlihatkan rekomendasi performa sampel untuk 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 menghapus kolom yang memiliki indeks yang dibuat secara otomatis pada kolom tersebut, perintah tersebut berhasil dijalankan. 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 indeks tidak meningkatkan kinerja, indeks akan otomatis dikembalikan ke kondisi semula. 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 penundaan mempertimbangkan 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 ini merupakan duplikat dari indeks lain (memiliki kolom terindeks dan kolom yang disertakan yang sama, skema partisi, serta filter yang sama).
  • 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 kueri muncul saat Anda memiliki satu atau beberapa kueri yang terus-menerus dikompilasi ulang tetapi menghasilkan 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 rencana yang dihasilkan ditambahkan ke cache rencana. Eksekusi selanjutnya atas kueri yang sama dapat menggunakan kembali rencana eksekusi ini dari memori cache, sehingga tidak memerlukan kompilasi tambahan.

Kueri dengan nilai yang tidak diparameterkan dapat menyebabkan overhead performa karena rencana eksekusi dikompilasi ulang setiap kali nilai yang tidak diparameterkan tersebut berbeda. Dalam banyak kasus, kueri yang sama dengan nilai parameter yang berbeda menghasilkan rencana eksekusi yang sama. Namun, plan-plan ini tetap ditambahkan secara terpisah ke cache plan.

Proses kompilasi ulang rencana eksekusi menggunakan sumber daya database, meningkatkan durasi kueri, dan membanjiri cache 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. Ini juga dapat membantu Anda mengurangi durasi kueri dan overhead pada cache paket eksekusi, yang berarti lebih banyak paket eksekusi dapat tetap tersimpan dalam 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 untuk memperbaiki masalah skema (pratinjau)

Penting

Microsoft saat ini sedang menghentikan rekomendasi "Perbaiki 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