Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Penyetelan Otomatis Database Azure SQL

Microsoft baru-baru ini mengumumkan fitur baru yang luar biasa – penyetelan otomatis di Azure SQL Database. Sejujurnya, saya sangat terkesan dengan fitur ini karena para insinyur Microsoft telah dengan canggih menggunakan kecerdasan buatan dalam penyetelan kinerja SQL Azure. Tujuannya adalah untuk memantau database Azure SQL dan mengirim pengamatan ini ke layanan intelijen bawaan yang menghasilkan beberapa rekomendasi. Mereka dapat diterapkan pada waktu offpeak. Fitur ini juga telah menyederhanakan pekerjaan administrator database; mereka tidak perlu khawatir tentang kinerja database SQL Azure sekarang.

Ada poin kunci pada penyetelan otomatis SQL Azure dalam dokumentasi MSDN "Penyetelan otomatis belajar secara horizontal dari semua basis data di Azure melalui Kecerdasan Buatan dan secara dinamis meningkatkan tindakan penyetelannya". Ini berarti bahwa algoritma kecerdasan buatan mempelajari pengalaman besar dari database SQL Azure yang berbeda. Untuk alasan ini, rekomendasi ini akan dapat diandalkan. Fitur penyetelan otomatis juga dapat mengembalikan rekomendasi dan mengoreksi dirinya sendiri.

Opsi menarik lainnya tentang fitur ini adalah notifikasi. Microsoft meningkatkan kepercayaan fitur ini dengan mengatakan bahwa itu diterapkan di beberapa perusahaan. Mungkin, pendekatan ini bisa sedikit utopis tetapi di masa depan kecerdasan buatan akan mendapatkan banyak tanggung jawab dari administrator basis data. Oleh karena itu, jumlah tugas untuk administrator database akan berkurang.

Untuk menguji fitur ini, saya membuat dua tabel di Azure SQL dan mengisinya dengan beberapa data. Setelah saya membuat data pengujian ini, saya menjalankan banyak kueri yang membutuhkan indeks non-cluster yang sama. Ketika saya memeriksa perkiraan rencana eksekusi kueri, saya menemukan bahwa itu menyarankan indeks yang tidak berkerumun. Kira-kira, setelah 30 jam, penyetelan otomatis Azure SQL menghasilkan rekomendasi untuk membuat indeks. Untuk waktu tunggu ini, Microsoft mencatat bahwa "Azure SQL Database perlu memantau aktivitas setidaknya selama satu hari untuk mengidentifikasi beberapa rekomendasi". Indeks rekomendasi penyetelan ini sama dengan indeks yang hilang. Saat penyetelan otomatis mencoba menjalankan skrip, terjadi kesalahan karena ruang disk terbatas.

/*
Missing Index Details from SQLQuery1.sql - xxxx.database.windows.net.Adventureworks (esat.erkec)
The Query Processor estimates that implementing the following index could improve the query cost by 99.6269%.
*/

/*
USE [Adventureworks]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Salesd] ([SalesOrderID])

GO
*/

Opsi penyetelan otomatis adalah sebagai berikut:

  • Buat Indeks yang mengidentifikasi pembuatan indeks otomatis yang dapat memengaruhi kinerja.
  • Turunkan Indeks yang mengidentifikasi indeks yang tidak digunakan atau berlebihan.
  • Paksa Rencana Terakhir Bagus yang mendefinisikan rencana kueri SQL yang lebih buruk dari yang sebelumnya. Fitur ini mengacu pada koreksi paket otomatis di SQL Server 2017.

Cara mengaktifkan penyetelan otomatis Azure SQL

Portal Azure atau kueri T-SQL memungkinkan pengaktifan opsi penyetelan otomatis. Fitur ini dapat mengaktifkan penyetelan otomatis di tingkat server atau basis data secara bersamaan. Tingkat basis data dapat mewarisi opsi ini dari tingkat server.

Sekarang, kita akan terhubung ke Azure Portal dan menemukan SQL Server.

Kemudian, temukan opsi penyetelan otomatis.

Pada tangkapan layar ini, kita dapat mengubah dan menerapkan opsi penyetelan otomatis di tingkat server dan di pengaturan default. Semua database diwarisi dari tingkat server. Namun, kami juga dapat mengubah opsi ini di tingkat basis data.

Opsi Status Saat Ini menentukan status saat ini dari opsi penyetelan otomatis. Microsoft menawarkan untuk mengelola fitur ini di tingkat server karena pengaturannya dapat diterapkan ke semua database.

Sekarang, kita akan melihat opsi penyetelan otomatis di tingkat basis data. Kami dapat menemukan opsi ini di database SQL.

Seperti yang Anda lihat, kami dapat menyetel opsi penyetelan otomatis untuk database individual dan mengubah opsi pewarisan.

Tangkapan layar di atas mengidentifikasi opsi berikut:

  • Kondisi Force Plan adalah “ON” dan diwarisi dari tingkat server yang statusnya “ON”.
  • Membuat status Indeks adalah "OFF" dan diwarisi dari tingkat server. Statusnya adalah “OFF”.
  • Kondisi Drop Index adalah “ON” dan opsi ini hanya disetel untuk database ini. Tingkat server tidak penting untuk pengaturan ini.

Kami dapat mengaktifkan penyetelan otomatis melalui T-SQL:

ALTER DATABASE current SET AUTOMATIC_TUNING 
(FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = DEFAULT, DROP_INDEX)

Pada langkah ini, kita akan melihat rekomendasi penyetelan otomatis yang terletak di bawah Menu SQL Server.

Selain itu, rekomendasi penyetelan otomatis dapat ditemukan di bawah menu basis data.

Rekomendasi penyetelan memiliki status yang berbeda:

  • Tertunda: Perintah Terapkan rekomendasi telah diterima dan dijadwalkan untuk dieksekusi.
  • Melaksanakan: Rekomendasi sedang diterapkan.
  • Memverifikasi: Rekomendasi berhasil diterapkan dan layanan mengukur manfaatnya.
  • Sukses: Rekomendasi berhasil diterapkan dan manfaat telah diukur.
  • Kesalahan: Terjadi kesalahan selama proses penerapan rekomendasi. Ini bisa menjadi masalah sementara atau perubahan skema pada tabel dan skrip tidak lagi valid.
  • Mengembalikan: Rekomendasi telah diterapkan, tetapi dianggap tidak berkinerja baik dan secara otomatis dikembalikan.
  • Dikembalikan: Rekomendasi telah dikembalikan.

Saat penyetelan otomatis membuat rekomendasi yang akan ditempatkan di bawah tab Rekomendasi, statusnya akan tertunda. Saat status rekomendasi penyetelan sedang dijalankan, kemajuan, keberhasilan atau kesalahan, itu akan ditampilkan di bawah tab Riwayat penyetelan. Pada saat yang sama, sys.dm_db_tuning_recommendations dapat mengembalikan informasi tentang rekomendasi penyetelan otomatis.

SELECT name, 
    JSON_VALUE(state, '$.currentValue') as script,
    JSON_VALUE(details, '$.implementationDetails.script') as script,
		
      details.* 
FROM sys.dm_db_tuning_recommendations
    CROSS APPLY OPENJSON(details, '$.createIndexDetails')
                WITH (  indexName VARCHAR(100) '$.indexName',
                        indexType VARCHAR(100) '$.indexType',
                        table_name VARCHAR(100) '$.table') as details

Saat kami mengklik Rekomendasi, kami dapat menemukan beberapa detail tentang rekomendasi penyetelan.

Kami bisa mendapatkan banyak informasi berguna tentang rekomendasi penyetelan dan membuat skrip fitur ini.

Detail script yang akan dikembalikan adalah sebagai berikut:

  • Dampak menentukan tingkat prioritas rekomendasi penyetelan.
  • Diperlukan ruang disk mendefinisikan konsumsi penyimpanan.
  • Jenis indeks menentukan jenis indeks yang akan dibuat.

Kesimpulan

Menurut pendapat saya, penyetelan otomatis SQL Azure adalah fitur generasi baru karena Microsoft mulai menggunakan algoritme kecerdasan buatan dalam rekomendasi penyetelan. Pada saat yang sama, fitur ini dapat menimbulkan pertanyaan berikut:

  • Kapan saya harus mendapatkan rekomendasi penyetelan ini?
  • Apakah rekomendasi penyetelan ini berguna? Jika tidak berguna, kapan saya harus mengembalikan rekomendasi penyetelan ini?

Hasilnya, penyetelan otomatis SQL Azure menawarkan pendekatan futuristik.

Referensi

Penyetelan otomatis di Azure SQL Database

Menyesuaikan kinerja di Azure SQL Database

Kecerdasan Buatan menyesuaikan Database Azure SQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masa Depan Tumpukan Aplikasi

  2. Pendekatan Prasejarah dan Modern untuk Merancang Basis Data

  3. Memahami Analisis Big Data

  4. Cara Memperbaiki ORA-12505, TNS:pendengar saat ini tidak mengetahui SID yang diberikan di deskriptor koneksi

  5. Apakah Kunci Kandidat dalam Desain Basis Data?