All Products
Search
Document Center

Database Autonomy Service:Pembatasan SQL Otomatis

Last Updated:Jun 21, 2026

Ketika lonjakan lalu lintas mendadak, kueri yang intensif sumber daya, atau volume tinggi kueri tanpa indeks mengancam kinerja database Anda, Anda memerlukan cara untuk mengendalikan dampaknya. Database Autonomy Service (DAS) menggunakan pembatasan SQL otomatis untuk menjaga stabilitas. Fitur ini mengidentifikasi pola SQL bermasalah dan membatasi konkurensinya berdasarkan kata kunci guna memastikan layanan inti Anda tetap tersedia.

Prasyarat

Fitur ini tersedia untuk instansiasi basis data berikut:

Database

Wilayah

  • ApsaraDB RDS for MySQL Edisi Ketersediaan Tinggi atau Edisi Perusahaan tiga node

    Catatan

    ApsaraDB RDS for MySQL 5.5 tidak didukung.

  • PolarDB for MySQL Edisi Kluster

    Catatan

    Kluster single-node PolarDB for MySQL (sebelumnya dikenal sebagai instans single-node) tidak didukung.

  • ApsaraDB MyBase for MySQL Edisi Ketersediaan Tinggi

Fitur pembatasan SQL otomatis hanya tersedia di wilayah yang mendukung deteksi anomali, karena fitur ini bergantung pada kemampuan tersebut. Wilayah yang didukung meliputi:

Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Shenzhen), Tiongkok (Heyuan), Tiongkok (Guangzhou), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Hohhot), Tiongkok (Ulanqab), Tiongkok (Nanjing - Local Region) (Sedang Dihentikan), Tiongkok (Fuzhou - Local Region) (Sedang Dihentikan), Tiongkok (Chengdu), Tiongkok (Zhengzhou), Tiongkok (Hong Kong), Jepang (Tokyo), Korea Selatan (Seoul), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Filipina (Manila), Thailand (Bangkok), UEA (Dubai), Arab Saudi (Riyadh), Jerman (Frankfurt), AS (Silicon Valley), AS (Virginia), dan Inggris (London)

Kasus Penggunaan

Pembatasan SQL otomatis ideal untuk skenario berikut:

  • Lonjakan beban kerja: Peningkatan mendadak dalam konkurensi kueri SQL tertentu, sering kali disebabkan oleh peristiwa seperti cache penetration atau perilaku aplikasi yang tidak biasa.

  • Persaingan sumber daya: Kueri yang terkait dengan akun tertentu, seperti yang memiliki volume besar data pesanan, mengonsumsi sumber daya database secara berlebihan.

  • Kueri tidak efisien: Volume tinggi kueri dieksekusi tanpa indeks yang tepat, sehingga menurunkan kinerja bisnis secara keseluruhan.

Batasan

Pembatasan SQL otomatis menggunakan mode Throttled by Keywords dan memiliki batasan berikut:

  • Jenis pernyataan SQL berikut didukung: SELECT, UPDATE, DELETE, dan INSERT.

  • Pernyataan SQL jenis INSERT...SELECT... tidak dapat dibatasi kecepatannya.

  • Hanya instans ApsaraDB RDS for MySQL 8.0 dan kluster PolarDB for MySQL 5.7 atau 8.0 yang mendukung pembatasan kecepatan untuk pernyataan INSERT.

Cara Kerja

Setelah Anda membuat aturan pembatasan otomatis, ketika sebuah aplikasi mengeksekusi pernyataan SQL yang sesuai dengan aturan pembatasan, database merespons sebagai berikut:

  • Instans ApsaraDB RDS for MySQL 5.6, ApsaraDB RDS for MySQL 5.7, dan kluster PolarDB for MySQL 5.6 mengembalikan error 1317 (eksekusi kueri diinterupsi).

  • Untuk instans ApsaraDB RDS for MySQL 8.0 dan kluster PolarDB for MySQL 5.7 atau PolarDB for MySQL 8.0, pernyataan SQL yang dibatasi masuk ke status Concurrency control waiting. Jika jumlah pernyataan yang menunggu melebihi nilai parameter ccl_max_waiting_count (jika didukung oleh versi instans), sistem mengembalikan error "Concurrency control waiting count exceed max waiting count" dan salah satu kode kesalahan berikut:

    • ApsaraDB RDS for MySQL 8.0: ERROR 7534 (HY000).

    • PolarDB for MySQL 5.7: ERROR 3277 (HY000).

    • PolarDB for MySQL 8.0: ERROR 7533 (HY000).

    Jika ccl_max_waiting_count diatur ke nilai default 0, semua pernyataan SQL yang dibatasi tetap dalam status Concurrency control waiting dan tidak ada error yang dikembalikan. Saat Anda mengonfigurasi pembatasan melalui DAS, jika parameter ini bernilai 0, DAS secara otomatis mengaturnya ke nilai default 10. Jika Anda telah mengatur parameter ke nilai lain yang lebih besar dari 0, DAS akan menggunakan pengaturan kustom Anda.

Untuk penjelasan teknis lengkap tentang pembatasan SQL otomatis, lihat Pembatasan SQL Otomatis.

Prosedur

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, klik Intelligent O&M Center > Instance Monitoring.

  3. Temukan instans target dan klik ID instans untuk membuka halaman detail instans.

  4. Di panel navigasi sebelah kiri, klik Autonomy Center.

  5. Di halaman Autonomy Center, klik Autonomy Service Settings di pojok kanan atas.

  6. Di panel Autonomous Function Management, klik tab Autonomous Function Settings. Aktifkan sakelar utama layanan otonomi, buka tab Optimization and Throttling, pilih Automatic Throttling, lalu konfigurasikan kondisi pemicu berikut.

    Parameter

    Deskripsi

    CPU Utilization >

    Menentukan ambang batas utilisasi CPU. Nilainya harus 70% atau lebih tinggi.

    Number of Active Sessions >

    Menentukan ambang batas jumlah sesi aktif.

    • Jika Anda menggunakan operator OR, nilainya harus 16 atau lebih.

    • Jika Anda menggunakan operator AND, nilainya harus 2 atau lebih.

    Available Time Range

    Periode waktu saat pembatasan SQL otomatis dapat dilakukan.

    Maximum Throttling Duration

    Durasi maksimum untuk satu tugas pembatasan SQL.

    Jika Maximum Throttling Duration diatur ke 0, pembatasan dipicu saat kondisi terpenuhi tetapi langsung menjadi tidak aktif.

    Duration >

    Durasi selama utilisasi CPU dan jumlah sesi aktif harus melebihi ambang batasnya sebelum pembatasan SQL otomatis dipicu.

    Catatan

    Contohnya, Anda dapat mengonfigurasi kondisi pemicu berikut dalam rentang waktu yang tersedia: Jika utilisasi CPU melebihi 80% DAN jumlah sesi aktif melebihi 64 selama lebih dari 2 menit, DAS memicu pembatasan otomatis.

    • Jika masalah tidak terselesaikan setelah pembatasan, operasi tersebut secara otomatis dikembalikan.

    • Durasi pembatasan tidak akan melebihi nilai yang ditentukan untuk Maximum Throttling Duration.

  7. Klik OK.

    Anda dapat melihat riwayat pembatasan SQL otomatis di halaman Instance Sessions. Untuk informasi lebih lanjut, lihat View automatic SQL throttling history.

  8. (Opsional) Klik tab Event Subscription Settings untuk mengonfigurasi notifikasi untuk event pembatasan SQL otomatis.

    Saat DAS memicu pembatasan SQL otomatis, sistem menghasilkan event tingkat Warning. Untuk menerima notifikasi, aktifkan sakelar Enable Subscription Service dan konfigurasikan parameter notifikasi. Untuk informasi lebih lanjut, lihat Enable event subscription.

  9. Konfigurasikan Alert Template untuk berlangganan notifikasi. Hal ini memastikan Anda menerima notifikasi tentang event pembatasan SQL otomatis pada instans database Anda.

    Sistem merekomendasikan templat dan menambahkan aturan peringatan yang sesuai untuk event otonomi. Anda dapat mengikuti petunjuk untuk menyelesaikan konfigurasi.

    Catatan
    • Jika Anda telah mengonfigurasi templat peringatan untuk instans tersebut, ikuti petunjuk untuk menambahkan aturan peringatan yang diperlukan ke templat yang sudah ada.

    • Untuk mengonfigurasi templat dan aturan peringatan secara manual, lihat Configure alert templates dan Configure alert rules.

  10. Pilih Alert Contact Group untuk menerima notifikasi.

    • Klik Add Contact untuk menambahkan kontak peringatan baru.

    • Klik Add Contact Group untuk menambahkan kelompok kontak peringatan baru.

    • Untuk mengubah atau menghapus kontak yang sudah ada, temukan kontak tersebut lalu klik Modify atau Remove di kolom Actions.

    Untuk informasi lebih lanjut, lihat Manage alert contacts.

  11. Klik Submit Configuration dan konfirmasi pengaturan di kotak dialog yang muncul.

Lihat Riwayat Pembatasan

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, klik Intelligent O&M Center > Instance Monitoring.

  3. Temukan instans target dan klik ID instans untuk membuka halaman detail instans.

  4. Di panel navigasi sebelah kiri, klik Instance Sessions.

  5. Di halaman Instance Sessions, lakukan langkah-langkah berikut:

    • Klik SQL Throttling.

      • Di tab Running, lihat aturan pembatasan yang sedang aktif.

      • Di tab Complete, pilih rentang waktu untuk melihat riwayat tugas pembatasan yang telah selesai.

      Riwayat mencakup kolom berikut: Throttling Mode, Max Concurrency, Start Time, End Time, Throttling Rule, dan Actions. Anda dapat mengklik Enable di kolom Actions untuk mengaktifkan kembali aturan yang telah selesai.

    • Jika Anda memilih Kill Abnormal SQL Statements in Execution di pengaturan, Anda dapat mengklik End Session History untuk melihat catatan sesi yang dihentikan.

Referensi

  • Anda dapat mengoptimalkan kueri SQL untuk meningkatkan kinerja database dan mengurangi konsumsi sumber daya.

  • Jika CPU utilization atau number of active sessions tidak mencapai ambang batas yang ditentukan, DAS tidak memicu pembatasan otomatis. Dalam kasus ini, Anda dapat mengonfigurasi aturan secara manual untuk membatasi pernyataan SQL. Untuk informasi lebih lanjut, lihat SQL throttling.

Referensi API

API

Deskripsi

UpdateAutoThrottleRulesAsync

Mengonfigurasi parameter pembatasan SQL otomatis untuk satu atau beberapa instans database secara asinkron.

GetAutoThrottleRules

Menanyakan aturan pembatasan SQL otomatis dari instans database tertentu.

DisableAutoThrottleRules

Menonaktifkan fitur pembatasan SQL otomatis untuk satu atau beberapa instans database tertentu.