全部产品
Search
文档中心

ApsaraDB RDS:Gunakan fitur pembatasan SQL otomatis

更新时间:Jul 06, 2025

Jika jumlah pernyataan SQL bersamaan meningkat secara signifikan karena lonjakan trafik yang tidak terduga, beberapa pernyataan SQL mengonsumsi sejumlah besar sumber daya database, atau sejumlah besar pernyataan SQL tanpa indeks dijalankan, Anda harus membatasi konkurensi pernyataan SQL untuk memastikan stabilitas bisnis. Database Autonomy Service (DAS) menyediakan fitur pembatasan SQL otomatis. Fitur ini secara otomatis mengekstrak karakteristik pernyataan SQL dan membatasi pernyataan SQL bermasalah berdasarkan kata kunci.

Prasyarat

Instans RDS Anda menjalankan salah satu versi MySQL dan edisi RDS berikut:

  • MySQL 8.0 pada RDS Edisi High-availability atau RDS Edisi Enterprise.

  • MySQL 5.7 pada RDS Edisi High-availability atau RDS Edisi Enterprise.

  • MySQL 5.6 pada RDS Edisi High-availability.

Skenario

Fitur pembatasan SQL otomatis cocok untuk skenario berikut:

  • Trafik: Penetrasi cache yang tidak normal atau permintaan mencurigakan menyebabkan lonjakan query SQL bersamaan dari jenis tertentu.

  • Data: Sejumlah besar query SQL dikirimkan dari sumber yang sama. Misalnya, pengguna platform belanja online melakukan sejumlah besar pemesanan. Dalam hal ini, sejumlah besar query SQL yang terkait dengan akun pengguna dikirimkan. Query SQL tersebut mengonsumsi sejumlah besar sumber daya database pada instans Anda.

  • Pernyataan SQL: Sejumlah besar pernyataan SQL yang tidak memiliki indeks dibuat dijalankan. Hal ini memengaruhi beban kerja Anda.

Batasan

Mode pembatasan pembatasan SQL otomatis adalah Dibatasi Berdasarkan Kata Kunci:

  • Pernyataan SQL dari tipe berikut dapat dibatasi: SELECT, UPDATE, DELETE, dan INSERT.

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

  • Hanya instans ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 dan kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0 yang dapat membatasi pernyataan SQL tipe INSERT.

Batasan

Mode pembatasan pembatasan SQL otomatis adalah Dibatasi Berdasarkan Kata Kunci:

  • Pernyataan SQL dari tipe berikut dapat dibatasi: SELECT, UPDATE, DELETE, dan INSERT.

    Catatan

    Hanya instans ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 dan kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0 yang dapat membatasi pernyataan SQL tipe INSERT.

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

Deskripsi Fitur

Jika Anda mengaktifkan fitur pembatasan SQL otomatis, berbagai jenis layanan database merespons secara berbeda terhadap pernyataan SQL yang mengandung semua kata kunci SQL.

  • Jika instans RDS Anda menjalankan MySQL 5.6 atau MySQL 5.7, kesalahan 1317: "eksekusi query terganggu" akan dikembalikan.

  • Jika instans RDS Anda menjalankan MySQL 8.0, sistem mengaktifkan pernyataan SQL terkait untuk tetap dalam keadaan Menunggu kontrol konkurensi. Setelah jumlah pernyataan SQL terkait melebihi nilai parameter ccl_max_waiting_count, kesalahan ERROR 7534 (HY000): "Jumlah menunggu kontrol konkurensi melebihi jumlah maksimum menunggu" akan dikembalikan. Parameter ccl_max_waiting_count mungkin tidak tersedia untuk instans RDS yang menjalankan versi mesin database yang berbeda.

    Jika parameter ccl_max_waiting_count disetel ke nilai default 0, semua pernyataan SQL yang dibatasi berada dalam keadaan Menunggu kontrol konkurensi, dan tidak ada kesalahan yang dikembalikan. Jika Anda menggunakan DAS untuk menerapkan pembatasan SQL dan menyetel parameter ccl_max_waiting_count ke 0, DAS mengubah nilai parameter tersebut menjadi nilai defaultnya yaitu 10. Jika Anda menyetel parameter tersebut ke nilai lebih dari 0, DAS menggunakan nilai yang Anda tentukan untuk menerapkan pembatasan SQL.

Prosedur

  1. Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.

  2. Gunakan salah satu metode berikut untuk membuka panel Autonomous Function Management:

    • Di panel navigasi sisi kiri, pilih Autonomy Services > Diagnostics. Pada halaman yang muncul, klik tab Autonomy Center. Pada tab Autonomy Center, klik Autonomy Service Settings.

    • Di panel navigasi sisi kiri, pilih Autonomy Services > Dashboard. Pada tab Performance Trends pada halaman yang muncul, klik Autonomy Service Settings.

  3. Pada tab Autonomous Function Settings pada panel Autonomous Function Management, aktifkan layanan otonomi. Pada tab Optimization and Throttling, pilih Automatic Throttling dan konfigurasikan parameter berikut untuk menentukan kondisi pemicu pembatasan otomatis.

  4. 2

    Parameter

    Deskripsi

    CPU Utilization >

    Ambang batas untuk pemanfaatan CPU. Setel parameter ini ke nilai yang lebih besar atau sama dengan 70.

    Number of Active Sessions >

    Ambang batas untuk jumlah sesi aktif.

    • Jika parameter ini menggunakan hubungan ATAU dengan parameter Pemanfaatan CPU, tentukan nilai yang lebih besar atau sama dengan 16 untuk parameter ini.

    • Jika parameter ini menggunakan hubungan DAN dengan parameter Pemanfaatan CPU, tentukan nilai yang lebih besar atau sama dengan 2 untuk parameter ini.

    Available Time Range

    Periode waktu selama pembatasan SQL otomatis dilakukan.

    Maximum Throttling Duration

    Durasi maksimum untuk pembatasan SQL.

    Jika Anda menyetel parameter Maximum Throttling Duration ke 0, pembatasan SQL otomatis dipicu ketika instans database Anda memenuhi kondisi yang Anda tentukan. Namun, pembatasan SQL otomatis langsung menjadi tidak valid.

    Duration >

    Ambang batas durasi. Jika periode waktu selama nilai parameter Pemanfaatan CPU dan Jumlah Sesi Aktif memenuhi kondisi yang ditentukan melebihi nilai parameter ini, pembatasan SQL otomatis dipicu.

    Catatan

    Sebagai contoh, Anda dapat menentukan kondisi berikut: Pemanfaatan CPU melebihi 80%, jumlah sesi aktif lebih besar dari 64, dan situasi abnormal berlangsung lebih dari 2 menit. Jika kondisi ini terpenuhi dalam jendela pembatasan yang ditentukan, pembatasan SQL otomatis dipicu, dan sistem mulai memantau kinerja instans RDS.

    • Jika masalah tetap ada setelah pembatasan, sistem secara otomatis membatalkan operasi pembatasan SQL otomatis.

    • Durasi pembatasan SQL otomatis tidak melebihi durasi pembatasan maksimum yang ditentukan.

  5. Klik OK.

  6. Opsional. Di bagian Konfigurasi Peringatan, konfigurasikan alert template dan berlangganan notifikasi peringatan. Ini membantu Anda memahami status tugas pembatasan SQL otomatis pada kesempatan pertama.

    Sistem merekomendasikan template peringatan dan menambahkan aturan peringatan untuk peristiwa otonomi yang diperlukan dalam template peringatan. Anda dapat mengonfigurasi template peringatan sesuai petunjuk.

    Catatan
    • Jika Anda telah mengonfigurasi template peringatan untuk instans RDS Anda, Anda harus menambahkan aturan peringatan untuk peristiwa otonomi yang diperlukan ke template peringatan sesuai petunjuk.

    • Jika Anda tidak mengonfigurasi template peringatan untuk instans RDS Anda tetapi ingin melakukannya, Anda dapat mengonfigurasi template peringatan dengan mengikuti instruksi yang disediakan dalam Konfigurasikan template peringatan dan Konfigurasikan aturan peringatan.

    1. Di langkah Pilih Grup Kontak Peringatan, pilih alert contact group.

      • Klik Add Contact untuk menambahkan kontak peringatan.

      • Klik Create Contact Group untuk membuat grup kontak peringatan.

      • Temukan kontak peringatan yang ingin Anda kelola dan klik Edit atau Remove di kolom Tindakan untuk memodifikasi atau menghapus informasi tentang kontak peringatan.

      Untuk informasi lebih lanjut, lihat Kelola kontak peringatan.

    2. Di langkah Asosiasi dengan Sumber Daya, konfirmasi associated resources.

    3. Klik Submit Configuration. Di kotak dialog yang muncul, konfirmasi konfigurasi.

Lihat riwayat pembatasan SQL otomatis

  1. Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.

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

  3. Klik tab Session Management.

  4. Di bagian Instance Sessions, klik SQL Throttling. Di kotak dialog yang muncul, lakukan operasi berikut berdasarkan kebutuhan bisnis Anda:

    SQL限流

    • Klik tab Running untuk melihat aturan pembatasan yang sedang dieksekusi.

    • Klik tab Complete dan pilih rentang waktu untuk melihat riwayat pembatasan dalam rentang waktu yang ditentukan.

      SQL限流

  5. Jika Anda memilih Kill Abnormal SQL Statements in Execution saat mengonfigurasi parameter untuk pembatasan SQL otomatis, Anda dapat mengklik End Session History untuk melihat sesi yang telah diakhiri.

Referensi

  • Anda dapat mengoptimalkan pernyataan SQL untuk meningkatkan kinerja database, meningkatkan efisiensi query, dan mengurangi konsumsi sumber daya. Untuk informasi lebih lanjut, lihat dokumentasi berikut:

  • Jika metrik instans RDS tidak mencapai ambang batas yang ditentukan dan pembatasan SQL otomatis tidak dapat dipicu, Anda dapat secara manual mengonfigurasi aturan untuk membatasi pernyataan SQL. Untuk informasi lebih lanjut, lihat Pembatasan SQL.

Operasi terkait

Operasi

Deskripsi

UpdateAutoThrottleRulesAsync

Secara asinkron menentukan parameter pembatasan SQL otomatis untuk beberapa instans database sekaligus.

GetAutoThrottleRules

Mengquery aturan pembatasan SQL otomatis dari instans database.

DisableAutoThrottleRules

Menonaktifkan fitur pembatasan SQL otomatis untuk beberapa instans database sekaligus.