All Products
Search
Document Center

Database Autonomy Service:SQL throttling

Last Updated:Aug 28, 2026

Database Autonomy Service (DAS) menyediakan fitur SQL throttling untuk mengontrol volume permintaan akses database dan konkurensi SQL guna memastikan ketersediaan layanan.

Prasyarat

Engine database yang didukung adalah:

  • ApsaraDB RDS for MySQL 5.6, 5.7, dan 8.0.

  • ApsaraDB RDS for PostgreSQL 13 dan versi yang lebih baru.

    Catatan
    • Untuk PostgreSQL 13, minor engine version harus 20250430 atau lebih baru.

    • Untuk PostgreSQL 14 atau 15, minor engine version harus 20230330 atau lebih baru.

    • Untuk versi PostgreSQL yang lebih baru dari 15, semua minor engine version didukung.

  • PolarDB for MySQL 5.6, 5.7, dan 8.0.

  • PolarDB-X 2.0.

  • MongoDB.

Throttling error messages

Setelah Anda membuat aturan SQL throttling, sistem database akan mengembalikan pesan error tertentu jika aplikasi menjalankan pernyataan SQL yang sesuai dengan kata kunci atau templat aturan tersebut.

Maximum concurrency

Instance version

Error code

Error message

0 atau bilangan bulat positif

  • ApsaraDB RDS for MySQL 5.6

  • ApsaraDB RDS for MySQL 5.7 (minor engine version sebelum 20200630)

  • PolarDB for MySQL 5.6

1317

query execution was interrupted

MongoDB

56900

Sql controlled, skipped!

Bilangan bulat positif

ApsaraDB RDS for MySQL 5.7 (minor engine version 20200630 atau lebih baru)

5041

Concurrency control waiting count exceed max waiting count

Catatan

Maximum concurrency berupa bilangan bulat positif, dan kueri SQL terkait akan berada dalam status Concurrency control waiting hingga jumlah antrian melebihi nilai parameter ccl_max_waiting_count (jika versi instans mendukung parameter ini), lalu sistem akan mengembalikan prompt.

ApsaraDB RDS for MySQL 8.0

7534

PolarDB for MySQL 5.7

3277

PolarDB for MySQL 8.0

7533

0

ApsaraDB RDS for MySQL 5.7 (minor engine version 20200630 atau lebih baru)

5042

Concurrency control refuse to execute query

Catatan

Jika maximum concurrency bernilai 0, error langsung dikembalikan.

ApsaraDB RDS for MySQL 8.0

7535

PolarDB for MySQL 5.7

3278

PolarDB for MySQL 8.0

7534

Catatan
  • Saat DAS melakukan SQL throttling, jika parameter ccl_max_waiting_count diatur ke 0, DAS menggunakan nilai default 10. Jika parameter diatur ke nilai lebih besar dari 0, DAS menggunakan nilai yang ditentukan.

  • Untuk instans ApsaraDB RDS for MySQL 5.7 (dengan minor version 20200630 atau lebih baru) dan ApsaraDB RDS for MySQL 8.0, jika parameter ccl_wait_timeout diatur (dan didukung oleh versi instans), pernyataan SQL dalam status Concurrency control waiting tetap dieksekusi dan tidak lagi dibatasi setelah batas waktu tersebut terlampaui.

  • Untuk instans PolarDB for MySQL 8.0, Anda dapat mengatur parameter ccl_mode untuk mengontrol perilaku pernyataan SQL saat batas konkurensi terlampaui. Parameter ini hanya tersedia pada versi instans yang didukung.

    • WAIT (default): Pernyataan menunggu dalam antrean.

    • REFUSE: Pernyataan tidak menunggu, dan error langsung dikembalikan.

Skenario

Scenario

Description

Sudden increase in SQL concurrency

Cache penetration atau panggilan abnormal dapat menyebabkan lonjakan konkurensi SQL secara tiba-tiba.

SQL queries with data skew

Pertanyaan data hot yang sering dilakukan selama promosi penjualan dapat membebani sistem.

Missing indexes

Volume tinggi panggilan SQL pada tabel tanpa indeks dapat membebani sistem.

Throttling modes

Mode

Description

Supported databases

Keyword throttling

Membatasi pernyataan SQL yang mengandung kata kunci tertentu.

Catatan

Anda tidak dapat menggunakan mode ini untuk membatasi pernyataan SQL tertentu.

  • ApsaraDB RDS for MySQL

  • PolarDB for MySQL

  • PolarDB-X 2.0

Throttle by SQL Template

Masukkan contoh SQL. Sistem akan memprosesnya menjadi templat SQL, lalu membatasi semua pernyataan SQL yang sesuai.

  • ApsaraDB RDS for MySQL:

    • Versi 5.7 dengan minor engine version 20241231 atau lebih baru.

    • Versi 8.0 dengan minor engine version 20230630 atau lebih baru.

  • ApsaraDB RDS for PostgreSQL:

    • Versi 13 dengan minor engine version 20250430 atau lebih baru.

    • Versi 14 dengan minor engine version 20230330 atau lebih baru.

    • Versi 15 dengan minor engine version 20230330 atau lebih baru.

    • Versi yang lebih baru dari 15.

  • PolarDB for MySQL:

    • Versi 8.0.1 dengan minor engine version 8.0.1.1.31 atau lebih baru.

    • Versi 8.0.2 dengan minor engine version 8.0.2.2.12 atau lebih baru.

Membatasi pernyataan SQL dengan mencocokkan ID templat SQL. Anda dapat memperoleh ID templat SQL dari log SQL, session, dan hasil eksekusi EXPLAIN.

Catatan

ID templat SQL merupakan string heksadesimal 8 karakter.

PolarDB-X 2.0 Enterprise Edition

Throttle by Execution Duration

Jika durasi eksekusi pernyataan SQL melebihi ambang batas yang ditentukan, ID templat SQL-nya secara otomatis ditambahkan ke aturan pembatasan. Pernyataan berikutnya yang sesuai dengan ID ini kemudian dieksekusi berdasarkan konkurensi yang ditentukan dalam aturan.

Catatan

Anda juga dapat menetapkan batas jumlah ID templat SQL yang dibatasi. Setelah batas tercapai, tidak ada aturan pembatasan tambahan yang dibuat untuk pernyataan SQL lainnya.

PolarDB-X 2.0 Enterprise Edition

Operation Type Throttling

Mengontrol konkurensi operasi find, insert, update, dan delete pada koleksi tertentu.

MongoDB

  • Versi 5.0 dengan minor engine version 6.0.13 atau lebih baru.

  • Versi 6.0 dengan minor engine version 7.0.9 atau lebih baru.

  • Versi 7.0 dengan minor engine version 8.0.4 atau lebih baru.

  • Versi 8.0, kecuali minor engine version 9.0.5.

Prosedur

Topik ini menggunakan ApsaraDB RDS for MySQL sebagai contoh untuk menjelaskan cara menggunakan fitur throttling. Untuk operasi terkait jenis database lainnya, lihat Dokumentasi Terkait.

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi 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 sisi kiri, klik Instance Sessions.

  5. Pada halaman Session Management, klik SQL Throttling.

  6. Di kotak dialog, klik Create Throttling Rule.

  7. Di kotak dialog Create Throttling Rule, konfigurasikan parameter berikut berdasarkan engine database.

  8. RDS for MySQL

    Parameter

    Description

    Throttling Mode

    Pilih throttling mode sesuai kebutuhan.

    SQL Type

    Jenis pernyataan SQL. Nilai yang valid: SELECT, UPDATE, DELETE, dan INSERT.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by Keyword.

    • Anda hanya dapat membatasi pernyataan INSERT pada engine database berikut:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 dan 8.0

      • PolarDB-X 2.0

    • Anda tidak dapat membatasi pernyataan INSERT...SELECT....

    Database

    Database tempat pernyataan SQL akan dibatasi.

    Catatan

    Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Maximum Concurrency

    Jumlah maksimum pernyataan SQL konkuren. Nilai minimum adalah 0.

    Catatan

    Pembatasan dimulai ketika jumlah pernyataan SQL konkuren yang sesuai aturan mencapai nilai ini.

    Throttling Duration

    Durasi efektif aturan SQL throttling.

    Penting

    SQL throttling merupakan tindakan darurat. Kami menyarankan menetapkan durasi sesuai kebutuhan bisnis Anda dan menonaktifkan aturan ketika tidak diperlukan lagi.

    SQL Keywords

    Kata kunci dalam pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by Keyword.

    • Jika Anda menentukan beberapa kata kunci, aturan pembatasan hanya dipicu jika pernyataan SQL mengandung semua kata kunci yang ditentukan. Pisahkan beberapa kata kunci dengan tanda tilde (~). Urutan kata kunci tidak berpengaruh.

      Sebagai contoh, jika pernyataan aslinya adalah SELECT min(id), max(id) FROM task_event WHERE gmt_modified < '2020-06-21' AND begin_time > '2020-07-09' AND source IN (527) AND id >= 15673 AND id <= 8015673 ,

      kata kunci pembatasannya adalah SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Anda tidak dapat menentukan hanya SELECT, INSERT, UPDATE, DELETE sebagai kata kunci pembatasan. Kata kunci bersifat case-sensitive. Namun, beberapa versi instans lama tidak case-sensitive.

    SQL Sample

    Contoh pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    • Untuk pernyataan SQL kompleks, DAS mentransformasi SQL Sample untuk pemrosesan internal, tetapi templat SQL akhir tetap tidak berubah. Efek pembatasan tidak terpengaruh oleh transformasi ini.

      Sebagai contoh, jika Anda memasukkan select name from das where name = `das` and age = 21 limit 20,

      templatnya menjadi select name from das where name = ? and age = ? limit ?

      lalu ditulis ulang menjadi select name from das where name = `param0` and age = `param1` limit 20.

    RDS for PostgreSQL

    Parameter

    Description

    Throttling Mode

    ApsaraDB RDS for PostgreSQL hanya mendukung Throttle by SQL Template.

    Database

    Database tempat pernyataan SQL akan dibatasi.

    Search Path

    Jalur pencarian untuk SQL throttling.

    Catatan

    Pisahkan beberapa jalur dengan koma (,). Nilai default adalah information_schema,public.

    Maximum Concurrency

    Jumlah maksimum pernyataan SQL konkuren. Nilai minimum adalah 0.

    Catatan

    Pembatasan dimulai ketika jumlah pernyataan SQL konkuren yang sesuai aturan mencapai nilai ini.

    Maximum Waiting Queries

    Jumlah maksimum kueri yang menunggu.

    Throttling Duration

    Durasi efektif aturan SQL throttling.

    Penting

    SQL throttling merupakan tindakan darurat. Kami menyarankan menetapkan durasi sesuai kebutuhan bisnis Anda dan menonaktifkan aturan ketika tidak diperlukan lagi.

    SQL Sample

    Contoh pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    • Untuk pernyataan SQL kompleks, DAS mentransformasi SQL Sample untuk pemrosesan internal, tetapi templat SQL akhir tetap tidak berubah. Efek pembatasan tidak terpengaruh oleh transformasi ini.

      Sebagai contoh, jika Anda memasukkan select name from das where name = "das" and age = 21 limit 20,

      templatnya menjadi select name from das where name = ? and age = ? limit ?

      lalu ditulis ulang menjadi select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB for MySQL

    Parameter

    Description

    Throttling Mode

    Pilih throttling mode sesuai kebutuhan.

    SQL Type

    Jenis pernyataan SQL. Nilai yang valid: SELECT, UPDATE, DELETE, dan INSERT.

    Catatan
    • Anda hanya dapat membatasi pernyataan INSERT pada engine database berikut:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 dan 8.0

      • PolarDB-X 2.0

    • Anda tidak dapat membatasi pernyataan INSERT...SELECT....

    Maximum Concurrency

    Jumlah maksimum pernyataan SQL konkuren. Nilai minimum adalah 0.

    Catatan

    Pembatasan dimulai ketika jumlah pernyataan SQL konkuren yang sesuai aturan mencapai nilai ini.

    Database

    Database tempat pernyataan SQL akan dibatasi.

    Catatan

    Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Throttling Duration

    Durasi efektif aturan SQL throttling.

    Penting

    SQL throttling merupakan tindakan darurat. Kami menyarankan menetapkan durasi sesuai kebutuhan bisnis Anda dan menonaktifkan aturan ketika tidak diperlukan lagi.

    SQL Keywords

    Kata kunci dalam pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by Keyword.

    • Jika Anda menentukan beberapa kata kunci, aturan pembatasan hanya dipicu jika pernyataan SQL mengandung semua kata kunci yang ditentukan. Pisahkan beberapa kata kunci dengan tanda tilde (~). Urutan kata kunci tidak berpengaruh.

      Sebagai contoh, jika pernyataan aslinya adalah SELECT min(id), max(id) FROM task_event WHERE gmt_modified < '2020-06-21' AND begin_time > '2020-07-09' AND source IN (527) AND id >= 15673 AND id <= 8015673 ,

      kata kunci pembatasannya adalah SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Anda tidak dapat menentukan hanya SELECT, INSERT, UPDATE, atau DELETE sebagai kata kunci pembatasan. Kata kunci bersifat case-sensitive. Namun, beberapa versi instans lama tidak case-sensitive.

    SQL Sample

    Contoh pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    • Untuk pernyataan SQL kompleks, DAS mentransformasi SQL Sample untuk pemrosesan internal, tetapi templat SQL akhir tetap tidak berubah. Efek pembatasan tidak terpengaruh oleh transformasi ini.

      Sebagai contoh, jika Anda memasukkan select name from das where name = "das" and age = 21 limit 20,

      templatnya menjadi select name from das where name = ? and age = ? limit ?

      lalu ditulis ulang menjadi select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB-X 2.0

    Parameter

    Description

    Throttling Mode

    Pilih throttling mode sesuai kebutuhan.

    SQL Type

    Jenis pernyataan SQL. Nilai yang valid: SELECT, UPDATE, DELETE, dan INSERT.

    Catatan
    • Anda hanya dapat membatasi pernyataan INSERT pada engine database berikut:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 dan 8.0

      • PolarDB-X 2.0

    • Anda tidak dapat membatasi pernyataan INSERT...SELECT....

    Maximum Concurrency

    Jumlah maksimum pernyataan SQL konkuren. Nilai minimum adalah 0.

    Catatan

    Pembatasan dimulai ketika jumlah pernyataan SQL konkuren yang sesuai aturan mencapai nilai ini.

    Throttling Duration

    Durasi efektif aturan SQL throttling.

    Penting

    SQL throttling merupakan tindakan darurat. Kami menyarankan menetapkan durasi sesuai kebutuhan bisnis Anda dan menonaktifkan aturan ketika tidak diperlukan lagi.

    SQL Keywords

    Kata kunci dalam pernyataan SQL yang akan dibatasi.

    Catatan
    • Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by Keyword.

    • Jika Anda menentukan beberapa kata kunci, aturan pembatasan hanya dipicu jika pernyataan SQL mengandung semua kata kunci yang ditentukan. Pisahkan beberapa kata kunci dengan tanda tilde (~). Urutan kata kunci tidak berpengaruh.

      Sebagai contoh, jika pernyataan aslinya adalah SELECT min(id), max(id) FROM task_event WHERE gmt_modified < '2020-06-21' AND begin_time > '2020-07-09' AND source IN (527) AND id >= 15673 AND id <= 8015673 ,

      kata kunci pembatasannya adalah SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Anda tidak dapat menentukan hanya SELECT, INSERT, UPDATE, atau DELETE sebagai kata kunci pembatasan. Kata kunci bersifat case-sensitive. Namun, beberapa versi instans lama tidak case-sensitive.

    SQL Template ID

    ID templat SQL yang akan dibatasi. ID berupa string heksadesimal 8 karakter. Pisahkan beberapa ID templat SQL dengan koma (,).

    Catatan

    Parameter ini wajib diisi untuk instans PolarDB-X saat Throttling Mode diatur ke Throttle by SQL Template.

    Minimum SQL Execution Duration

    Ambang batas durasi eksekusi SQL. Jika durasi eksekusi pernyataan SQL melebihi ambang batas yang ditentukan, sistem akan menambahkan ID templat pernyataan SQL tersebut ke aturan pembatasan.

    Catatan

    Parameter ini wajib diisi untuk instans PolarDB-X saat Throttling Mode diatur ke Throttle by Execution Duration.

    Maximum Number of Throttled Queries

    Jumlah maksimum ID templat SQL yang dapat dibatasi berdasarkan durasi eksekusi. Setelah batas ini tercapai, sistem tidak lagi membuat aturan pembatasan untuk pernyataan SQL lain yang durasi eksekusinya melebihi ambang batas yang ditentukan.

    Catatan

    Parameter ini wajib diisi untuk instans PolarDB-X saat Throttling Mode diatur ke Throttle by Execution Duration.

    Database Account with Throttled Queries

    Akun database yang terkait dengan pernyataan SQL yang dibatasi.

    Catatan

    Parameter ini wajib diisi jika Anda mengatur Throttling Mode ke Throttle by Keyword atau Throttle by SQL Template.

    MongoDB

    Parameter

    Description

    Operation type

    Pilih jenis operasi yang akan dibatasi. Anda dapat memilih beberapa jenis. Nilai yang valid: find, insert, update, dan delete.

    Operation concurrency

    Tentukan jumlah maksimum operasi konkuren yang diizinkan untuk jenis operasi yang dipilih. Permintaan yang melebihi ambang batas ini akan dibatasi.

    Throttling duration

    Tetapkan durasi aktif aturan pembatasan. Setelah aturan kedaluwarsa, sistem secara otomatis menonaktifkannya dan memindahkannya ke tab Ended.

    Kill Statement

    (Opsional) Jika Anda mengaktifkan opsi ini, saat aturan pembatasan berlaku, sistem secara otomatis menghentikan (kills) operasi aktif yang sesuai aturan, seperti operasi find atau update jangka panjang. Sistem hanya melakukan tindakan ini sekali untuk segera melepaskan koneksi dan sumber daya komputasi yang terpakai. Permintaan baru yang datang setelah aturan aktif akan dibatasi dan tidak dihentikan. Fitur ini ideal untuk situasi darurat di mana lonjakan beban kerja tiba-tiba menyebabkan akumulasi banyak transaksi jangka panjang, sehingga memerlukan pelepasan sumber daya segera.

    Throttling scope

    Opsi ini hanya tersedia untuk instans sharded cluster ApsaraDB for MongoDB. Anda dapat menerapkan aturan ke All Shards atau Partial Shards.

    Throttled collections

    Tentukan koleksi yang dikenai aturan. Gunakan format databaseName.collectionName.

  9. Klik Submit.

    Setelah aturan SQL throttling dibuat, Anda dapat melihat detailnya di tab Running. Tabel berikut menjelaskan parameter-parameter tersebut.

    Catatan

    Parameter dalam daftar sedikit berbeda tergantung pada engine database dan mode pembatasan.

    Parameter

    Description

    Throttling Mode

    Mode yang Anda pilih.

    Throttling Rule

    • Throttle by Keyword: Kata kunci pembatasan yang dikonfigurasi.

    • Throttle by SQL Template: ID templat yang sesuai dengan SQL Sample.

    • Throttle by Execution Duration: Ambang batas durasi eksekusi dan jumlah templat SQL yang dibatasi.

    Maximum Concurrency

    Jumlah maksimum pernyataan SQL konkuren.

    Maximum Waiting Queries

    Jumlah maksimum kueri yang menunggu yang dikonfigurasi dalam aturan pembatasan.

    Catatan

    Parameter ini ditampilkan untuk instans ApsaraDB RDS for PostgreSQL saat Throttling Mode diatur ke Throttle by SQL Template.

    Throttling Duration (min)

    Durasi efektif aturan SQL throttling.

    Start Time

    Waktu saat aturan pembatasan dikonfigurasi dan mulai berlaku.

    Remaining time

    Sisa waktu sebelum aturan pembatasan kedaluwarsa.

    SQL Sample

    Contoh pernyataan SQL yang akan dibatasi.

    Catatan

    Parameter ini ditampilkan jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Throttling Template ID

    ID templat yang sesuai dengan SQL Sample.

    Catatan

    Parameter ini ditampilkan jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Status

    Menunjukkan bahwa aturan sedang aktif.

    Database

    Database tempat pernyataan SQL akan dibatasi.

    Catatan

    Parameter ini ditampilkan jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Search Path

    Jalur pencarian yang sesuai dengan pernyataan SQL yang dibatasi.

    Catatan

    Parameter ini ditampilkan untuk instans ApsaraDB RDS for PostgreSQL saat Throttling Mode diatur ke Throttle by SQL Template.

    Matched SQL Query

    Jumlah kueri SQL yang sesuai dengan aturan pembatasan.

    Catatan

    Parameter ini ditampilkan jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Waiting SQL Query

    Jumlah kueri SQL yang sedang menunggu akibat aturan pembatasan.

    Catatan

    Parameter ini ditampilkan jika Anda mengatur Throttling Mode ke Throttle by SQL Template.

    Actions

    Memungkinkan Anda Disable atau Modify aturan.

Topik Terkait

API Terkait

API

Description

EnableSqlConcurrencyControl

Mengaktifkan SQL throttling.

DisableSqlConcurrencyControl

Menonaktifkan aturan pembatasan tertentu.

DisableAllSqlConcurrencyControlRules

Menonaktifkan semua aturan pembatasan yang sedang berjalan.

GetRunningSqlConcurrencyControlRules

Mengembalikan aturan pembatasan yang sedang berjalan.

GetSqlConcurrencyControlRulesHistory

Mengembalikan aturan pembatasan yang sedang berjalan atau telah dipicu.

GetSqlConcurrencyControlKeywordsFromSqlText

Menghasilkan kata kunci pembatasan dari pernyataan SQL.