Database Autonomy Service (DAS) menyediakan teknologi optimasi SQL yang secara otomatis mendeteksi dan menganalisis kueri lambat di database serta mengidentifikasi pernyataan SQL yang tidak efisien. Teknologi ini mengevaluasi rencana eksekusi dari pernyataan SQL bermasalah dan memberikan saran optimasi atau langsung mengoptimalkannya. Saran tersebut mencakup penulisan ulang pernyataan SQL dan penyesuaian penggunaan indeks, sehingga mengurangi waktu kueri dan konsumsi sumber daya.
Informasi latar belakang
Sebagian besar administrator database (DBA) dan pengembang aplikasi membutuhkan optimasi SQL. Pernyataan SQL yang dieksekusi pada database sangat beragam dan terus berubah dinamis dalam skenario seperti iterasi bisnis cepat, perubahan distribusi data, perubahan titik panas, dan pembaruan versi database. Oleh karena itu, optimasi SQL memerlukan banyak tenaga kerja dan sumber daya material.
Tantangan
Akurasi: Mekanisme deteksi pengecualian harus dibangun untuk mengidentifikasi waktu optimasi dengan tepat dan mengenali pernyataan SQL bermasalah secara akurat.
Diagnostik Profesional: Diagnostik dan optimasi profesional yang kuat diperlukan. Tanpa diagnostik yang valid, optimasi SQL tidak dapat dilaksanakan.
Keamanan: Perubahan online harus aman dan terkendali karena semuanya yang online memiliki dampak penting.
Kelengkapan: Pelacakan multi-dimensi dan evaluasi real-time terhadap performa optimasi diperlukan untuk memastikan keamanan.
Keterkaitan: Masalah online kompleks seperti kueri lambat jahat memerlukan solusi komprehensif. Fitur pembatasan SQL otomatis dan optimasi SQL otomatis dari DAS harus saling terhubung untuk menangani gejala dan penyebab akar masalah.
Skala: Arsitektur layanan skalabel diperlukan untuk mendukung optimasi SQL otomatis pada ratusan ribu hingga jutaan server.
Risiko masalah
Dua poin waktu penting dipertimbangkan. Gambar berikut menunjukkan tren sederhana dari kueri lambat. T1 adalah titik waktu ketika pengecualian performa instance database terdeteksi dan optimasi kueri lambat dimulai. T2 adalah titik waktu ketika proses optimasi selesai dan instance kembali normal. Proses optimasi tradisional sepenuhnya bergantung pada operasi manual, dengan kelemahan serius berikut:
T1 lebih lambat dari yang diharapkan, menunjukkan bahwa pengecualian tidak terdeteksi atau tidak ditanggapi tepat waktu. Bahkan jika terdeteksi, mungkin sudah berlangsung lama dan mendekati ambang kegagalan.
Durasi antara T2 dan T1 menunjukkan lamanya proses optimasi. Durasi yang lama memengaruhi pengalaman pengguna dan meningkatkan risiko kegagalan.

Selain dua masalah di atas, tantangan lebih besar berikut dihadapi:
Bagaimana mencapai optimasi berkelanjutan? Deteksi masalah dan optimalkan pernyataan SQL pada kesempatan pertama untuk mencegah akumulasi masalah, memastikan stabilitas dan status optimal instance database.
Bagaimana mempersingkat durasi pemrosesan, meminimalkan dampak, dan menggunakan metode komprehensif untuk memastikan stabilitas instance database serta menyelesaikan gejala dan penyebab akar?
Proses optimasi tradisional yang bergantung pada operasi manual bersifat reaktif dan tidak mampu menangani sejumlah besar masalah. Seiring berkembangnya bisnis dan meningkatnya jumlah data, masalah menjadi semakin besar. Bahkan penambahan tenaga kerja tidak dapat menyelesaikan masalah ini, membentuk siklus buruk.
Solusi
Optimasi SQL otomatis adalah fitur inti Alibaba Cloud DAS, menawarkan kemampuan otonom untuk mencapai loop tertutup optimasi SQL. Gambar berikut menunjukkan kemampuan loop tertutup yang disediakan oleh optimasi SQL otomatis.
Mendeteksi pengecualian beban kerja, mengidentifikasi perubahan bisnis database, dan mengenali pernyataan SQL bermasalah seperti pernyataan SQL baru yang menyebabkan kueri lambat, performa menurun, atau tidak efisien.
Untuk pernyataan SQL bermasalah, fitur diagnostik dan optimasi SQL dari DAS digunakan untuk menghasilkan saran seperti membuat indeks optimal, menulis ulang pernyataan SQL, dan merekomendasikan mesin.
Menilai risiko saran optimasi, menghasilkan rencana rilis canary, dan mengatur tugas optimasi berdasarkan beban kerja dan profil instance database.
Memilih jendela waktu O&M, menyelesaikan perubahan online menggunakan rencana rilis canary, dan mengubah serta merilis indeks secara otomatis.
Melacak performa perubahan dari beberapa dimensi untuk menilai risiko regresi performa secara real-time. Jika hasil sesuai harapan, manfaat optimasi dihitung. Jika tidak, perubahan dikembalikan secara otomatis.
Optimasi pasif intensif tenaga kerja diubah menjadi optimasi aktif dan berkelanjutan berbasis kecerdasan melalui loop tertutup optimasi SQL otomatis. Ini mencapai optimasi SQL tanpa pengawasan, bekerja seperti ahli database yang memberikan layanan pengawasan 24/7 untuk menjaga database tetap optimal.
Arsitektur

Optimasi SQL otomatis DAS adalah loop tertutup yang didorong oleh data. Gambar di atas menggambarkan seluruh proses secara sederhana.
Peristiwa Pengecualian: Peristiwa pengecualian memicu optimasi SQL otomatis. Pusat peristiwa DAS memungkinkan manajemen terpusat peristiwa pengecualian yang dihasilkan dalam sistem peringatan, deteksi real-time, analisis offline, dan deteksi beban kerja.
Diagnostik: Setelah menerima peristiwa pengecualian, optimasi SQL otomatis melakukan diagnostik awal, mengirim permintaan ke mesin diagnostik, dan memproses hasil untuk menghasilkan saran. Hasil diproses untuk menilai efektivitas, menghasilkan peristiwa optimasi baru, dan mendorong proses optimasi berikutnya.
Pemberian Saran: Saat mengaktifkan layanan otonomi di pusat otonomi DAS, Anda dapat memilih apakah akan menerima saran optimasi. Pengaturan ini memicu proses optimasi otomatis berikutnya.
Rilis Perubahan: DAS mengeluarkan perintah perubahan di jendela waktu O&M dan memeriksa status perintah.
Pelacakan dan Pengukuran Performa: Ketika saran optimasi mulai berlaku, mesin keputusan melacak performa pernyataan SQL yang dioptimalkan dan terkait. Jika performa menurun, pernyataan SQL dikembalikan. Umumnya, jika tidak ada pengembalian setelah pelacakan 24 jam, manfaat optimasi dihitung.
Deteksi masalah
Optimasi SQL mendeteksi pengecualian SQL dalam skenario berikut:
Optimasi SQL dipicu secara berkala. Dalam jendela waktu O&M, kueri lambat dianalisis secara offline untuk memicu optimasi SQL.
Optimasi SQL dipicu ketika performa beberapa pernyataan SQL menurun. Algoritma deteksi pengecualian beban kerja mendeteksi penurunan performa secara real-time dan memicu optimasi SQL otomatis. Untuk masalah kompleks, fitur optimasi SQL otomatis dan pembatasan SQL otomatis DAS dihubungkan.
Optimasi SQL dipicu ketika beban kerja database berubah. Ketika pernyataan SQL bisnis diterbitkan atau tidak diterbitkan, beban kerja dan volume data berubah, dan indeks yang ada tidak memenuhi persyaratan performa. Dalam hal ini, diagnostik dan optimasi dipicu.
Kemampuan diagnostik
Fitur diagnostik dan optimasi SQL DAS mendukung optimasi SQL otomatis dengan memproses masalah menggunakan model berbasis biaya seperti pengoptimal database. Fitur ini menilai kuantitatif semua opsi rekomendasi berdasarkan biaya eksekusi dan memberikan rekomendasi andal.
Fitur diagnostik dan optimasi SQL telah berjalan stabil di Alibaba Group selama bertahun-tahun, mendiagnosis sekitar 50.000 pernyataan SQL per hari dan mendukung optimasi SQL untuk aplikasi bisnis grup. Tingkat keberhasilan diagnostik SQL tetap di atas 98%, dan tingkat rekomendasi untuk kueri lambat tetap di atas 75%.
Perubahan keamanan
Perubahan keamanan melibatkan pemeriksaan keamanan sebelum perubahan, kebijakan rilis canary, dan pelacakan performa setelah perubahan.
Pemeriksaan Keamanan: Perubahan hanya terjadi di jendela waktu O&M dan ketika metrik latensi replikasi antara database utama dan sekunder, beban kerja database, dan ruang tabel berada dalam rentang aman.
Kebijakan Rilis Canary: Misalnya, saat sharding melibatkan sejumlah besar data, rencana rilis canary dihasilkan untuk menerapkan perubahan dalam batch, mengurangi risiko. Sistem memantau latensi replikasi dan menangguhkan tugas perubahan jika melebihi ambang batas.
Evaluasi Performa: Algoritma evaluasi performa melacak performa pernyataan SQL yang dioptimalkan dan template SQL terkait untuk mencegah kegagalan akibat penurunan performa. Algoritma ini membandingkan metrik performa sebelum dan sesudah optimasi menggunakan model pohon keputusan. Siklus pelacakan default adalah 24 jam. Jika tidak ada pengembalian, optimasi berhasil dan manfaat optimasi dihitung.
Mesin database yang didukung
Optimasi SQL otomatis mendukung mesin database berikut: ApsaraDB RDS for MySQL, PolarDB for MySQL, dan ApsaraDB RDS for PostgreSQL.