All Products
Search
Document Center

ApsaraDB RDS:Pembatasan SQL Otomatis

Last Updated:Mar 28, 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 MySQLEdisi yang didukung
MySQL 8.0RDS High-availability Edition, RDS Enterprise Edition
MySQL 5.7RDS High-availability Edition, RDS Enterprise Edition
MySQL 5.6RDS High-availability Edition

Kasus penggunaan

Pembatasan SQL otomatis dirancang untuk skenario berikut:

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

  • Kueri intensif dari satu pengguna: Seorang pengguna mengirimkan sejumlah besar kueri SQL dalam waktu singkat—misalnya, pembeli yang melakukan banyak pesanan secara bersamaan—sehingga mengonsumsi sumber daya database secara 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 masuk ke 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 nilaiPerilaku
0 (default)Semua pernyataan yang dibatasi menunggu tanpa batas waktu; tidak ada error yang dikembalikan
0 saat DAS mengaktifkan pembatasanDAS secara otomatis mengubah nilainya menjadi 10
Nilai apa pun > 0DAS 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.
      ParameterDeskripsi
      CPU Utilization >Ambang batas penggunaan CPU. Tetapkan nilai ≥ 70. Misalnya, masukkan 80 agar pembatasan dipicu ketika 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 ketika sesi aktif melebihi 64.
      Available Time RangeJendela waktu selama fitur pembatasan SQL otomatis aktif.
      Maximum Throttling DurationDurasi maksimum untuk satu event 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 bertahan lebih dari 2 menit.

      2

    • Klik OK.

    • (Opsional) Pada bagian Alert Configuration, konfigurasikan templat notifikasi dan berlangganan notifikasi untuk menerima pemberitahuan saat tugas pembatasan kecepatan dimulai atau dihentikan. Sistem akan merekomendasikan templat notifikasi serta mengisi aturan notifikasi sebelumnya untuk event otonomi yang relevan. Ikuti prompt 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 templat 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:

      TabDeskripsi
      RunningAturan pembatasan yang sedang berlaku. Tugas tetap dalam status ini hingga Maximum Throttling Duration berakhir atau hingga DAS secara otomatis membatalkan operasi tersebut.
      CompleteTugas 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 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

    OperasiDeskripsi
    UpdateAutoThrottleRulesAsyncMengonfigurasi parameter pembatasan SQL otomatis untuk beberapa instans database sekaligus secara asinkron
    GetAutoThrottleRulesMenanyakan aturan pembatasan SQL otomatis dari instans database
    DisableAutoThrottleRulesMenonaktifkan fitur pembatasan SQL otomatis untuk beberapa instans database sekaligus