All Products
Search
Document Center

ApsaraDB RDS:Pembatasan SQL Otomatis

Last Updated:Jul 16, 2026

Database Autonomy Service (DAS) secara otomatis mendeteksi pernyataan SQL bermasalah selama lonjakan lalu lintas dan membatasi eksekusinya berdasarkan kata kunci—tanpa intervensi manual. Fitur ini melindungi instans ApsaraDB RDS Anda dari degradasi kinerja akibat lonjakan konkurensi mendadak, kueri tanpa indeks, atau pola permintaan yang tidak wajar.

Versi yang didukung

Pembatasan SQL otomatis tersedia untuk instans ApsaraDB RDS yang menjalankan versi dan edisi MySQL berikut:

Versi MySQL Edisi yang didukung
MySQL 8.0 RDS High-availability Edition, RDS Enterprise Edition
MySQL 5.7 RDS High-availability Edition, RDS Enterprise Edition
MySQL 5.6 RDS High-availability Edition

Kasus penggunaan

Pembatasan SQL otomatis dirancang untuk skenario berikut:

  • Lonjakan lalu lintas: Cache penetration atau permintaan mencurigakan menyebabkan lonjakan mendadak pada kueri SQL konkuren jenis tertentu.

  • Kueri intensif oleh satu pengguna: Seorang pengguna mengirim sejumlah besar kueri SQL dalam periode singkat—misalnya, pembeli yang melakukan banyak pesanan secara bersamaan—sehingga menghabiskan bagian sumber daya database yang tidak proporsional.

  • Kurangnya indeks: Sejumlah besar pernyataan SQL tanpa indeks dieksekusi, sehingga menurunkan kinerja beban kerja lainnya.

Batasan

Mode pembatasan adalah Throttled by Keywords.

  • Jenis SQL yang didukung: SELECT, UPDATE, DELETE, dan INSERT

  • Pernyataan INSERT...SELECT... tidak dapat dibatasi.

  • Pembatasan INSERT hanya didukung pada instans ApsaraDB RDS yang menjalankan MySQL 8.0 dan kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0.

Cara kerja

Saat pembatasan SQL otomatis dipicu, perilakunya bergantung pada versi MySQL yang dijalankan oleh instans ApsaraDB RDS Anda.

MySQL 5.6 atau MySQL 5.7

Pernyataan SQL yang dibatasi akan diinterupsi dan mengembalikan error berikut ke klien:

1317: "query execution was interrupted"

MySQL 8.0

Pernyataan SQL yang dibatasi memasuki status Concurrency control waiting. Jika jumlah pernyataan yang menunggu melebihi nilai parameter ccl_max_waiting_count, error berikut dikembalikan:

ERROR 7534 (HY000): "Concurrency control waiting count exceed max waiting count"

Parameter ccl_max_waiting_count mengontrol jumlah maksimum pernyataan yang dibatasi yang boleh menunggu sebelum error dikembalikan:

ccl_max_waiting_count nilai Perilaku
0 (default) Semua pernyataan yang dibatasi menunggu tanpa batas waktu; tidak ada error yang dikembalikan
0 saat DAS mengaktifkan pembatasan DAS secara otomatis mengubah nilainya menjadi 10
Nilai apa pun > 0 DAS menggunakan nilai yang ditentukan

Aktifkan pembatasan SQL otomatis

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans ApsaraDB RDS Anda berada. Temukan instans tersebut dan klik ID-nya.

  2. Buka panel Autonomous Function Management melalui salah satu jalur berikut:

    • Di panel navigasi kiri, pilih Autonomy Services > Diagnostics. Klik tab Autonomy Center, lalu klik Autonomy Services.

    • Di panel navigasi kiri, pilih Autonomy Services > Dashboard. Di tab Performance Trends, klik Autonomy Services.

  3. Di tab Autonomous Function Settings, aktifkan layanan otonomi. Klik tab Optimization and Throttling, pilih Automatic Throttling, dan konfigurasikan kondisi pemicu pembatasan.

    Saat kondisi terpenuhi dalam jendela waktu yang dikonfigurasi, DAS mulai memantau instans. Jika masalah tetap berlanjut setelah pembatasan dimulai, DAS secara otomatis membatalkan operasi pembatasan tersebut. Durasi pembatasan tidak pernah melebihi nilai Maximum Throttling Duration.
    Parameter Deskripsi
    CPU Utilization > Ambang batas penggunaan CPU. Tetapkan nilai ≥ 70. Misalnya, masukkan 80 agar pembatasan dipicu saat penggunaan CPU melebihi 80%.
    Number of Active Sessions > Ambang batas jumlah sesi aktif. Tetapkan ≥ 16 jika menggunakan hubungan OR dengan CPU Utilization, atau ≥ 2 jika menggunakan hubungan AND. Misalnya, masukkan 64 agar pembatasan dipicu saat jumlah sesi aktif melebihi 64.
    Available Time Range Jendela waktu selama fitur pembatasan SQL otomatis aktif.
    Maximum Throttling Duration Durasi maksimum untuk satu kejadian pembatasan. Jika diatur ke 0, pembatasan dipicu segera tetapi langsung menjadi tidak berlaku.
    Duration > Berapa lama kondisi CPU dan sesi harus bertahan sebelum pembatasan dipicu. Misalnya, masukkan 2 menit agar pembatasan hanya aktif setelah kondisi tersebut berlangsung lebih dari 2 menit.

    2

  4. Klik OK.

  5. (Opsional) Di bagian Alert Configuration, konfigurasikan templat notifikasi dan berlangganan notifikasi agar Anda diberi tahu saat tugas pembatasan dimulai atau dihentikan. Sistem merekomendasikan templat notifikasi dan mengisi aturan notifikasi untuk event otonomi terkait. Ikuti petunjuk di layar untuk menyelesaikan konfigurasi.

    1. Pada langkah Select Alert Contact Group, pilih kelompok kontak peringatan. Untuk informasi lebih lanjut, lihat Manage alert contacts.

      • Klik Add Contact untuk menambahkan kontak peringatan baru.

      • Klik Create Contact Group untuk membuat kelompok kontak peringatan baru.

      • Klik Edit atau Remove untuk memperbarui atau menghapus kontak yang sudah ada.

    2. Pada langkah Associate with Resources, konfirmasi resource yang terkait.

    3. Klik Submit Configuration dan konfirmasi di kotak dialog yang muncul.

    Jika instans ApsaraDB RDS Anda sudah memiliki templat notifikasi, tambahkan aturan notifikasi yang diperlukan seperti yang diminta. Untuk membuat dari awal, lihat Configure alert templates dan Configure alert rules.

Lihat riwayat pembatasan

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans ApsaraDB RDS Anda berada. Temukan instans tersebut dan klik ID-nya.

  2. Di panel navigasi kiri, pilih Autonomy Services > Diagnostics.

  3. Klik tab Session Management.

  4. Di bagian Instance Sessions, klik SQL Throttling. Di kotak dialog, lihat tugas pembatasan berdasarkan status:

    Tab Deskripsi
    Running Aturan pembatasan yang sedang berlaku. Tugas tetap dalam status ini hingga Maximum Throttling Duration berakhir atau hingga DAS secara otomatis membatalkan operasi tersebut.
    Complete Tugas pembatasan yang telah selesai. Pilih rentang waktu untuk memfilter riwayat.

    SQL限流

    SQL限流

  5. Jika Anda memilih Kill Abnormal SQL Statements in Execution saat mengonfigurasi pembatasan, klik End Session History untuk melihat sesi yang telah dihentikan.

Langkah berikutnya

  • Untuk mengoptimalkan pernyataan SQL dan mengurangi konsumsi sumber daya alih-alih membatasi, lihat Automatic SQL optimization dan SQL optimization.

  • Jika metrik instans tidak mencapai ambang batas yang diperlukan untuk memicu pembatasan otomatis, konfigurasikan aturan pembatasan manual sebagai gantinya. Lihat SQL throttling.

Referensi API

Operasi Deskripsi
UpdateAutoThrottleRulesAsync Mengonfigurasi parameter pembatasan SQL otomatis untuk beberapa instans database sekaligus secara asinkron
GetAutoThrottleRules Menanyakan aturan pembatasan SQL otomatis dari instans database
DisableAutoThrottleRules Menonaktifkan fitur pembatasan SQL otomatis untuk beberapa instans database sekaligus