Todos los productos
Search
Centro de documentos

Database Autonomy Service:SQL throttling

Última actualización: Sep 04, 2026

Database Autonomy Service (DAS) ofrece la función de limitación de SQL para controlar el volumen de solicitudes de acceso a la base de datos y la concurrencia de SQL, con el fin de garantizar la disponibilidad del servicio.

Requisitos previos

Los motores de base de datos compatibles son:

  • ApsaraDB RDS for MySQL 5.6, 5.7 y 8.0.

  • ApsaraDB RDS for PostgreSQL 13 y versiones posteriores.

    Nota
    • Para PostgreSQL 13, la minor engine version debe ser 20250430 o posterior.

    • Para PostgreSQL 14 o 15, la versión menor del motor debe ser 20230330 o posterior.

    • Para versiones de PostgreSQL posteriores a la 15, se admite cualquier versión menor del motor.

  • PolarDB for MySQL 5.6, 5.7 y 8.0.

  • PolarDB-X 2.0.

  • MongoDB.

Mensajes de error de limitación

Después de crear una regla de limitación de SQL, el sistema de base de datos devuelve un mensaje de error específico si una aplicación ejecuta una sentencia SQL que coincide con las palabras clave o la plantilla de la regla.

Concurrencia máxima

Versión de la instancia

Código de error

Mensaje de error

0 o un entero positivo

  • ApsaraDB RDS for MySQL 5.6

  • ApsaraDB RDS for MySQL 5.7 (versión menor del motor anterior a 20200630)

  • PolarDB for MySQL 5.6

1317

query execution was interrupted

MongoDB

56900

Sql controlled, skipped!

Entero positivo

ApsaraDB RDS for MySQL 5.7 (versión menor del motor 20200630 o posterior)

5041

Concurrency control waiting count exceed max waiting count

Nota

La concurrencia máxima es un entero positivo y las consultas SQL relacionadas permanecerán en estado Concurrency control waiting hasta que el recuento de espera supere el valor del parámetro ccl_max_waiting_count (si la versión de la instancia admite este parámetro), momento en el que se devuelve un aviso.

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 (versión menor del motor 20200630 o posterior)

5042

Concurrency control refuse to execute query

Nota

Si la concurrencia máxima es 0, se devuelve un error de inmediato.

ApsaraDB RDS for MySQL 8.0

7535

PolarDB for MySQL 5.7

3278

PolarDB for MySQL 8.0

7534

Nota
  • Cuando DAS aplica la limitación de SQL, si el parámetro ccl_max_waiting_count está establecido en 0, DAS utiliza su valor predeterminado de 10. Si el parámetro se establece en un valor mayor que 0, DAS usa el valor especificado.

  • Para instancias de ApsaraDB RDS for MySQL 5.7 (con versión menor 20200630 o posterior) y ApsaraDB RDS for MySQL 8.0, si el parámetro ccl_wait_timeout está configurado (y es compatible con la versión de la instancia), las sentencias SQL en estado Concurrency control waiting continúan ejecutándose y dejan de limitarse una vez superado este límite.

  • Para instancias de PolarDB for MySQL 8.0, puede configurar el parámetro ccl_mode para controlar el comportamiento de las sentencias SQL cuando se excede el límite de concurrencia. Este parámetro solo está disponible en versiones de instancia compatibles.

    • WAIT (predeterminado): La sentencia espera en una cola.

    • REFUSE: La sentencia no espera y se devuelve un error de inmediato.

Escenarios

Escenario

Descripción

Aumento repentino en la concurrencia de SQL

La penetración de caché o llamadas anómalas pueden provocar un incremento súbito en la concurrencia de SQL.

Consultas SQL con sesgo de datos

Consultar frecuentemente datos activos durante una promoción de ventas puede sobrecargar el sistema.

Índices faltantes

Un alto volumen de llamadas SQL en una tabla sin índices puede sobrecargar el sistema.

Modos de limitación

Modo

Descripción

Bases de datos compatibles

Keyword throttling

Limita las sentencias SQL que contienen palabras clave específicas.

Nota

No puede usar este modo para limitar una sentencia SQL específica.

  • ApsaraDB RDS for MySQL

  • PolarDB for MySQL

  • PolarDB-X 2.0

Throttle by SQL Template

Introduzca una muestra de SQL. El sistema la procesa en una plantilla de SQL y luego limita todas las sentencias SQL coincidentes.

  • ApsaraDB RDS for MySQL:

    • Versión 5.7 con una versión menor del motor 20241231 o posterior.

    • Versión 8.0 con una versión menor del motor 20230630 o posterior.

  • ApsaraDB RDS for PostgreSQL:

    • Versión 13 con una versión menor del motor 20250430 o posterior.

    • Versión 14 con una versión menor del motor 20230330 o posterior.

    • Versión 15 con una versión menor del motor 20230330 o posterior.

    • Versiones posteriores a la 15.

  • PolarDB for MySQL:

    • Versión 8.0.1 con una versión menor del motor 8.0.1.1.31 o posterior.

    • Versión 8.0.2 con una versión menor del motor 8.0.2.2.12 o posterior.

Limita sentencias SQL mediante la coincidencia de ID de plantilla de SQL. Puede obtener los ID de plantilla de SQL desde registros de SQL, sesiones y resultados de ejecución de EXPLAIN.

Nota

Un ID de plantilla de SQL es una cadena hexadecimal de 8 caracteres.

PolarDB-X 2.0 Enterprise Edition

Throttle by Execution Duration

Si el tiempo de ejecución de una sentencia SQL supera el umbral especificado, su ID de plantilla de SQL se agrega automáticamente a la regla de limitación. Las sentencias posteriores que coincidan con este ID se ejecutarán según la concurrencia especificada en la regla.

Nota

También puede establecer un límite en la cantidad de ID de plantilla de SQL limitados. Una vez alcanzado el límite, no se crearán más reglas de limitación para otras sentencias SQL.

PolarDB-X 2.0 Enterprise Edition

Operation Type Throttling

Controla la concurrencia de operaciones find, insert, update y delete en una colección especificada.

MongoDB

  • Versión 5.0 con una versión menor del motor 6.0.13 o posterior.

  • Versión 6.0 con una versión menor del motor 7.0.9 o posterior.

  • Versión 7.0 con una versión menor del motor 8.0.4 o posterior.

  • Versión 8.0, excluyendo la versión menor del motor 9.0.5.

Procedimiento

Este tema utiliza ApsaraDB RDS for MySQL como ejemplo para describir cómo usar la función de limitación. Para consultar las operaciones relacionadas con otros tipos de bases de datos, consulte Related documentation.

  1. Inicie sesión en la consola de DAS.

  2. En el panel de navegación izquierdo, haga clic en Intelligent O&M Center > Instance Monitoring.

  3. Localice la instancia objetivo y haga clic en su ID para abrir la página de detalles de la instancia.

  4. En el panel de navegación izquierdo, haga clic en Instance Sessions.

  5. En la página Session Management, haga clic en SQL Throttling.

  6. En el cuadro de diálogo, haga clic en Create Throttling Rule.

  7. En el cuadro de diálogo Create Throttling Rule, configure los siguientes parámetros según el motor de base de datos.

  8. RDS for MySQL

    Parámetro

    Descripción

    Throttling Mode

    Seleccione un throttling mode según sea necesario.

    SQL Type

    El tipo de sentencia SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by Keyword.

    • Solo puede limitar sentencias INSERT en los siguientes motores de bases de datos:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 y 8.0

      • PolarDB-X 2.0

    • No se pueden limitar sentencias INSERT...SELECT....

    Database

    La base de datos donde se limitarán las sentencias SQL.

    Nota

    Este parámetro es obligatorio si establece Throttling Mode en Throttle by SQL Template.

    Maximum Concurrency

    El número máximo de sentencias SQL simultáneas. El valor mínimo es 0.

    Nota

    La limitación comienza cuando el número de sentencias SQL simultáneas que coinciden con la regla alcanza este valor.

    Throttling Duration

    La duración durante la cual la regla de limitación de SQL está activa.

    Importante

    La limitación de SQL es una medida de emergencia. Se recomienda establecer la duración según sus necesidades empresariales y deshabilitar la regla cuando ya no sea necesaria.

    SQL Keywords

    Palabras clave en las sentencias SQL que se van a limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by Keyword.

    • Si especifica varias palabras clave, la regla de limitación se activa solo si una sentencia SQL contiene todas las palabras clave especificadas. Separe las palabras clave con tildes (~). El orden de las palabras clave no importa.

      Por ejemplo, si la sentencia original es 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 ,

      las palabras clave de limitación correspondientes son SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • No puede especificar únicamente SELECT, INSERT, UPDATE, DELETE como palabras clave de limitación. Las palabras clave distinguen entre mayúsculas y minúsculas. Sin embargo, algunas versiones anteriores de instancias no hacen esta distinción.

    SQL Sample

    Una sentencia SQL de ejemplo para limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by SQL Template.

    • Para sentencias SQL complejas, DAS transforma la muestra SQL (SQL Sample) para su procesamiento interno, pero la plantilla SQL final permanece sin cambios. Esta transformación no afecta el efecto de la limitación.

      Por ejemplo, si introduce select name from das where name = das and age = 21 limit 20,

      se convierte en la plantilla select name from das where name = ? and age = ? limit ?

      y luego se reescribe como select name from das where name = param0 and age = param1 limit 20.

    RDS for PostgreSQL

    Parámetro

    Descripción

    Throttling Mode

    ApsaraDB RDS for PostgreSQL solo admite Throttle by SQL Template.

    Database

    La base de datos donde se limitarán las sentencias SQL.

    Search Path

    La ruta de búsqueda para la limitación de SQL.

    Nota

    Separe varias rutas con comas (,). El valor predeterminado es information_schema,public.

    Maximum Concurrency

    El número máximo de sentencias SQL simultáneas. El valor mínimo es 0.

    Nota

    La limitación comienza cuando el número de sentencias SQL simultáneas que coinciden con la regla alcanza este valor.

    Maximum Waiting Queries

    El número máximo de consultas en espera.

    Throttling Duration

    La duración durante la cual la regla de limitación de SQL está activa.

    Importante

    La limitación de SQL es una medida de emergencia. Se recomienda establecer la duración según sus necesidades empresariales y deshabilitar la regla cuando ya no sea necesaria.

    SQL Sample

    Una sentencia SQL de ejemplo para limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by SQL Template.

    • Para sentencias SQL complejas, DAS transforma la muestra SQL (SQL Sample) para su procesamiento interno, pero la plantilla SQL final permanece sin cambios. Esta transformación no afecta el efecto de la limitación.

      Por ejemplo, si introduce select name from das where name = "das" and age = 21 limit 20,

      se convierte en la plantilla select name from das where name = ? and age = ? limit ?

      y luego se reescribe como select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB for MySQL

    Parámetro

    Descripción

    Throttling Mode

    Seleccione un throttling mode según sea necesario.

    SQL Type

    El tipo de sentencia SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • Solo puede limitar sentencias INSERT en los siguientes motores de bases de datos:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 y 8.0

      • PolarDB-X 2.0

    • No se pueden limitar sentencias INSERT...SELECT....

    Maximum Concurrency

    El número máximo de sentencias SQL simultáneas. El valor mínimo es 0.

    Nota

    La limitación comienza cuando el número de sentencias SQL simultáneas que coinciden con la regla alcanza este valor.

    Database

    La base de datos donde se limitarán las sentencias SQL.

    Nota

    Este parámetro es obligatorio si establece Throttling Mode en Throttle by SQL Template.

    Throttling Duration

    La duración durante la cual la regla de limitación de SQL está activa.

    Importante

    La limitación de SQL es una medida de emergencia. Se recomienda establecer la duración según sus necesidades empresariales y deshabilitar la regla cuando ya no sea necesaria.

    SQL Keywords

    Palabras clave en las sentencias SQL que se van a limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by Keyword.

    • Si especifica varias palabras clave, la regla de limitación se activa solo si una sentencia SQL contiene todas las palabras clave especificadas. Separe las palabras clave con tildes (~). El orden de las palabras clave no importa.

      Por ejemplo, si la sentencia original es 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 ,

      las palabras clave de limitación correspondientes son SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • No puede especificar únicamente SELECT, INSERT, UPDATE o DELETE como palabras clave de limitación. Las palabras clave distinguen entre mayúsculas y minúsculas. Sin embargo, algunas versiones anteriores de instancias no hacen esta distinción.

    SQL Sample

    Una sentencia SQL de ejemplo para limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by SQL Template.

    • Para sentencias SQL complejas, DAS transforma la muestra SQL (SQL Sample) para su procesamiento interno, pero la plantilla SQL final permanece sin cambios. Esta transformación no afecta el efecto de la limitación.

      Por ejemplo, si introduce select name from das where name = "das" and age = 21 limit 20,

      se convierte en la plantilla select name from das where name = ? and age = ? limit ?

      y luego se reescribe como select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB-X 2.0

    Parámetro

    Descripción

    Throttling Mode

    Seleccione un throttling mode según sea necesario.

    SQL Type

    El tipo de sentencia SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • Solo puede limitar sentencias INSERT en los siguientes motores de bases de datos:

      • ApsaraDB RDS for MySQL 8.0

      • PolarDB for MySQL 5.7 y 8.0

      • PolarDB-X 2.0

    • No se pueden limitar sentencias INSERT...SELECT....

    Maximum Concurrency

    El número máximo de sentencias SQL simultáneas. El valor mínimo es 0.

    Nota

    La limitación comienza cuando el número de sentencias SQL simultáneas que coinciden con la regla alcanza este valor.

    Throttling Duration

    La duración durante la cual la regla de limitación de SQL está activa.

    Importante

    La limitación de SQL es una medida de emergencia. Se recomienda establecer la duración según sus necesidades empresariales y deshabilitar la regla cuando ya no sea necesaria.

    SQL Keywords

    Palabras clave en las sentencias SQL que se van a limitar.

    Nota
    • Este parámetro es obligatorio si establece Throttling Mode en Throttle by Keyword.

    • Si especifica varias palabras clave, la regla de limitación se activa solo si una sentencia SQL contiene todas las palabras clave especificadas. Separe las palabras clave con tildes (~). El orden de las palabras clave no importa.

      Por ejemplo, si la sentencia original es 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 ,

      las palabras clave de limitación correspondientes son SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • No puede especificar únicamente SELECT, INSERT, UPDATE o DELETE como palabras clave de limitación. Las palabras clave distinguen entre mayúsculas y minúsculas. Sin embargo, algunas versiones anteriores de instancias no hacen esta distinción.

    SQL Template ID

    El ID de la plantilla SQL que se va a limitar. Un ID es una cadena hexadecimal de 8 caracteres. Separe varios ID de plantillas SQL con comas (,).

    Nota

    Este parámetro es obligatorio para las instancias de PolarDB-X cuando Throttling Mode se establece en Throttle by SQL Template.

    Minimum SQL Execution Duration

    El umbral para el tiempo de ejecución de SQL. Si el tiempo de ejecución de una sentencia SQL supera el umbral especificado, el sistema agrega el ID de plantilla de dicha sentencia a la regla de limitación.

    Nota

    Este parámetro es obligatorio para las instancias de PolarDB-X cuando Throttling Mode se establece en Throttle by Execution Duration.

    Maximum Number of Throttled Queries

    El número máximo de ID de plantillas SQL que se pueden limitar según el tiempo de ejecución. Una vez alcanzado este límite, el sistema deja de crear reglas de limitación para otras sentencias SQL cuyo tiempo de ejecución supere el umbral especificado.

    Nota

    Este parámetro es obligatorio para las instancias de PolarDB-X cuando Throttling Mode se establece en Throttle by Execution Duration.

    Database Account with Throttled Queries

    La cuenta de base de datos asociada con la sentencia SQL limitada.

    Nota

    Este parámetro es obligatorio si establece Throttling Mode en Throttle by Keyword o Throttle by SQL Template.

    MongoDB

    Parámetro

    Descripción

    Operation type

    Seleccione los tipos de operación que desea limitar. Puede seleccionar varios tipos. Valores válidos: find, insert, update y delete.

    Operation concurrency

    Especifique el número máximo de operaciones simultáneas permitidas para los tipos de operación seleccionados. Las solicitudes que superen este umbral se limitarán.

    Throttling duration

    Establezca la duración activa de la regla de limitación. Una vez que la regla caduca, el sistema la deshabilita automáticamente y la mueve a la pestaña Ended.

    Kill Statement

    (Opcional) Si habilita esta opción, cuando la regla de limitación entra en vigor, el sistema finaliza automáticamente cualquier operación activa que coincida con la regla, como operaciones find o update de larga duración. El sistema realiza esta acción solo una vez para liberar inmediatamente las conexiones ocupadas y los recursos de computación. Las nuevas solicitudes que lleguen después de que la regla esté activa se limitarán, pero no se finalizarán. Esta función es ideal para situaciones de emergencia donde un aumento repentino de la carga de trabajo ha provocado la acumulación de muchas transacciones de larga duración, lo que requiere una liberación inmediata de recursos.

    Throttling scope

    Esta opción solo está disponible para instancias de clúster fragmentado de ApsaraDB for MongoDB. Puede aplicar la regla a All Shards o a Partial Shards.

    Throttled collections

    Especifique las colecciones a las que se aplica la regla. Utilice el formato databaseName.collectionName.

  9. Haga clic en Submit.

    Una vez creada la regla de limitación de SQL, puede consultar sus detalles en la pestaña Running. La siguiente tabla describe los parámetros.

    Nota

    Los parámetros de la lista varían ligeramente según el motor de base de datos y el modo de limitación.

    Parámetro

    Descripción

    Throttling Mode

    El modo que seleccionó.

    Throttling Rule

    • Throttle by Keyword: Las palabras clave de limitación configuradas.

    • Throttle by SQL Template: El ID de plantilla correspondiente a la muestra SQL (SQL Sample).

    • Throttle by Execution Duration: El umbral de tiempo de ejecución configurado y el número de plantillas SQL limitadas.

    Maximum Concurrency

    El número máximo de sentencias SQL simultáneas.

    Maximum Waiting Queries

    El número máximo de consultas en espera configurado en la regla de limitación.

    Nota

    Este parámetro se muestra para las instancias de ApsaraDB RDS for PostgreSQL cuando Throttling Mode se establece en Throttle by SQL Template.

    Throttling Duration (min)

    La duración durante la cual la regla de limitación de SQL está activa.

    Start Time

    La hora en que se configuró la regla de limitación y entró en vigor.

    Remaining time

    El tiempo restante antes de que caduque la regla de limitación.

    SQL Sample

    Una sentencia SQL de ejemplo para limitar.

    Nota

    Este parámetro se muestra si establece Throttling Mode en Throttle by SQL Template.

    Throttling Template ID

    El ID de plantilla correspondiente a la muestra SQL (SQL Sample).

    Nota

    Este parámetro se muestra si establece Throttling Mode en Throttle by SQL Template.

    Status

    Indica que la regla está activa.

    Database

    La base de datos donde se limitarán las sentencias SQL.

    Nota

    Este parámetro se muestra si establece Throttling Mode en Throttle by SQL Template.

    Search Path

    La ruta de búsqueda que corresponde a la sentencia SQL limitada.

    Nota

    Este parámetro se muestra para las instancias de ApsaraDB RDS for PostgreSQL cuando Throttling Mode se establece en Throttle by SQL Template.

    Matched SQL Query

    El número de consultas SQL que coinciden con la regla de limitación.

    Nota

    Este parámetro se muestra si establece Throttling Mode en Throttle by SQL Template.

    Waiting SQL Query

    El número de consultas SQL que están en espera debido a la regla de limitación.

    Nota

    Este parámetro se muestra si establece Throttling Mode en Throttle by SQL Template.

    Actions

    Permite Disable (deshabilitar) o Modify (modificar) la regla.

Temas relacionados

API relacionadas

API

Descripción

EnableSqlConcurrencyControl

Habilita la limitación de SQL.

DisableSqlConcurrencyControl

Deshabilita una regla de limitación específica.

DisableAllSqlConcurrencyControlRules

Deshabilita todas las reglas de limitación en ejecución.

GetRunningSqlConcurrencyControlRules

Devuelve las reglas de limitación en ejecución.

GetSqlConcurrencyControlRulesHistory

Devuelve las reglas de limitación que están en ejecución o que se han activado.

GetSqlConcurrencyControlKeywordsFromSqlText

Genera palabras clave de limitación a partir de una sentencia SQL.