Tous les produits
Search
Centre de documentation

Database Autonomy Service:Limitation SQL

Dernière mise à jour :Aug 27, 2026

Cette rubrique utilise ApsaraDB RDS for MySQL comme exemple pour décrire l'utilisation de la fonctionnalité de limitation. Pour les opérations relatives à d'autres types de bases de données, consultez la documentation connexe.

  1. Connectez-vous à la console DAS.

  2. Dans le volet de navigation de gauche, cliquez sur Intelligent O&M Center > Instance Monitoring .

  3. Recherchez l'instance cible et cliquez sur son ID pour ouvrir la page des détails de l'instance.

  4. Dans le volet de navigation de gauche, cliquez sur Instance Sessions.

  5. Sur la page Session Management, cliquez sur SQL Throttling.

  6. Dans la boîte de dialogue, cliquez sur Create Throttling Rule.

  7. Dans la boîte de dialogue Create Throttling Rule, configurez les paramètres suivants en fonction du moteur de base de données.

  8. RDS for MySQL

    Paramètre

    Description

    Throttling Mode

    Sélectionnez un mode de limitation selon vos besoins.

    SQL Type

    Le type de l'instruction SQL. Valeurs valides : SELECT, UPDATE, DELETE et INSERT.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by Keyword.

    • Vous ne pouvez limiter les instructions INSERT que sur les moteurs de base de données suivants :

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 et 8,0

      • PolarDB-X 2,0

    • Vous ne pouvez pas limiter les instructions INSERT...SELECT....

    Database

    La base de données dans laquelle les instructions SQL seront limitées.

    Remarque

    Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by SQL Template.

    Maximum Concurrency

    Le nombre maximal d'instructions SQL simultanées. La valeur minimale est 0.

    Remarque

    La limitation commence lorsque le nombre d'instructions SQL simultanées correspondant à la règle atteint cette valeur.

    Throttling Duration

    La durée pendant laquelle la règle de limitation SQL est effective.

    Important

    La limitation SQL est une mesure d'urgence. Nous vous recommandons de définir la durée en fonction de vos besoins métier et de désactiver la règle lorsqu'elle n'est plus nécessaire.

    SQL Keywords

    Les mots-clés présents dans les instructions SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by Keyword.

    • Si vous spécifiez plusieurs mots-clés, la règle de limitation ne se déclenche que si une instruction SQL contient tous les mots-clés spécifiés. Séparez les différents mots-clés par des tildes (~). L'ordre des mots-clés n'a pas d'importance.

      Par exemple, si l'instruction d'origine est 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 ,

      les mots-clés de limitation correspondants sont SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Vous ne pouvez pas spécifier uniquement SELECT, INSERT, UPDATE, DELETE comme mots-clés de limitation. Les mots-clés sont sensibles à la casse. Toutefois, certaines versions antérieures des instances ne sont pas sensibles à la casse.

    SQL Sample

    Un exemple d'instruction SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by SQL Template.

    • Pour les instructions SQL complexes, DAS transforme l'exemple SQL pour le traitement interne, mais le modèle SQL final reste inchangé. L'effet de limitation n'est pas affecté par cette transformation.

      Par exemple, si vous saisissez select name from das where name = das and age = 21 limit 20,

      il est modélisé sous la forme select name from das where name = ? and age = ? limit ?

      puis réécrit en select name from das where name = param0 and age = param1 limit 20.

    RDS for PostgreSQL

    Paramètre

    Description

    Throttling Mode

    ApsaraDB RDS for PostgreSQL prend uniquement en charge la fonction Throttle by SQL Template.

    Database

    La base de données dans laquelle les instructions SQL seront limitées.

    Search Path

    Le chemin de recherche pour la limitation SQL.

    Remarque

    Séparez les différents chemins par des virgules (,). La valeur par défaut est information_schema,public.

    Maximum Concurrency

    Le nombre maximal d'instructions SQL simultanées. La valeur minimale est 0.

    Remarque

    La limitation commence lorsque le nombre d'instructions SQL simultanées correspondant à la règle atteint cette valeur.

    Maximum Waiting Queries

    Le nombre maximal de requêtes en attente.

    Throttling Duration

    La durée pendant laquelle la règle de limitation SQL est effective.

    Important

    La limitation SQL est une mesure d'urgence. Nous vous recommandons de définir la durée en fonction de vos besoins métier et de désactiver la règle lorsqu'elle n'est plus nécessaire.

    SQL Sample

    Un exemple d'instruction SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by SQL Template.

    • Pour les instructions SQL complexes, DAS transforme l'exemple SQL pour le traitement interne, mais le modèle SQL final reste inchangé. L'effet de limitation n'est pas affecté par cette transformation.

      Par exemple, si vous saisissez select name from das where name = "das" and age = 21 limit 20,

      il est modélisé sous la forme select name from das where name = ? and age = ? limit ?

      puis réécrit en select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB for MySQL

    Paramètre

    Description

    Throttling Mode

    Sélectionnez un mode de limitation selon vos besoins.

    SQL Type

    Le type de l'instruction SQL. Valeurs valides : SELECT, UPDATE, DELETE et INSERT.

    Remarque
    • Vous ne pouvez limiter les instructions INSERT que sur les moteurs de base de données suivants :

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 et 8,0

      • PolarDB-X 2,0

    • Vous ne pouvez pas limiter les instructions INSERT...SELECT....

    Maximum Concurrency

    Le nombre maximal d'instructions SQL simultanées. La valeur minimale est 0.

    Remarque

    La limitation commence lorsque le nombre d'instructions SQL simultanées correspondant à la règle atteint cette valeur.

    Database

    La base de données dans laquelle les instructions SQL seront limitées.

    Remarque

    Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by SQL Template.

    Throttling Duration

    La durée pendant laquelle la règle de limitation SQL est effective.

    Important

    La limitation SQL est une mesure d'urgence. Nous vous recommandons de définir la durée en fonction de vos besoins métier et de désactiver la règle lorsqu'elle n'est plus nécessaire.

    SQL Keywords

    Les mots-clés présents dans les instructions SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by Keyword.

    • Si vous spécifiez plusieurs mots-clés, la règle de limitation ne se déclenche que si une instruction SQL contient tous les mots-clés spécifiés. Séparez les différents mots-clés par des tildes (~). L'ordre des mots-clés n'a pas d'importance.

      Par exemple, si l'instruction d'origine est 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 ,

      les mots-clés de limitation correspondants sont SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Vous ne pouvez pas spécifier uniquement SELECT, INSERT, UPDATE ou DELETE comme mots-clés de limitation. Les mots-clés sont sensibles à la casse. Toutefois, certaines versions antérieures des instances ne sont pas sensibles à la casse.

    SQL Sample

    Un exemple d'instruction SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by SQL Template.

    • Pour les instructions SQL complexes, DAS transforme l'exemple SQL pour le traitement interne, mais le modèle SQL final reste inchangé. L'effet de limitation n'est pas affecté par cette transformation.

      Par exemple, si vous saisissez select name from das where name = "das" and age = 21 limit 20,

      il est modélisé sous la forme select name from das where name = ? and age = ? limit ?

      puis réécrit en select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB-X 2,0

    Paramètre

    Description

    Throttling Mode

    Sélectionnez un mode de limitation selon vos besoins.

    SQL Type

    Le type de l'instruction SQL. Valeurs valides : SELECT, UPDATE, DELETE et INSERT.

    Remarque
    • Vous ne pouvez limiter les instructions INSERT que sur les moteurs de base de données suivants :

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 et 8,0

      • PolarDB-X 2,0

    • Vous ne pouvez pas limiter les instructions INSERT...SELECT....

    Maximum Concurrency

    Le nombre maximal d'instructions SQL simultanées. La valeur minimale est 0.

    Remarque

    La limitation commence lorsque le nombre d'instructions SQL simultanées correspondant à la règle atteint cette valeur.

    Throttling Duration

    La durée pendant laquelle la règle de limitation SQL est effective.

    Important

    La limitation SQL est une mesure d'urgence. Nous vous recommandons de définir la durée en fonction de vos besoins métier et de désactiver la règle lorsqu'elle n'est plus nécessaire.

    SQL Keywords

    Les mots-clés présents dans les instructions SQL à limiter.

    Remarque
    • Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by Keyword.

    • Si vous spécifiez plusieurs mots-clés, la règle de limitation ne se déclenche que si une instruction SQL contient tous les mots-clés spécifiés. Séparez les différents mots-clés par des tildes (~). L'ordre des mots-clés n'a pas d'importance.

      Par exemple, si l'instruction d'origine est 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 ,

      les mots-clés de limitation correspondants sont SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Vous ne pouvez pas spécifier uniquement SELECT, INSERT, UPDATE ou DELETE comme mots-clés de limitation. Les mots-clés sont sensibles à la casse. Toutefois, certaines versions antérieures des instances ne sont pas sensibles à la casse.

    SQL Template ID

    L'ID du modèle SQL à limiter. Un ID est une chaîne hexadécimale de 8 caractères. Séparez les différents ID de modèles SQL par des virgules (,).

    Remarque

    Ce paramètre est obligatoire pour les instances PolarDB-X Throttling Mode lorsque le mode de limitation est défini sur Throttle by SQL Template.

    Minimum SQL Execution Duration

    Le seuil de temps d'exécution SQL. Si le temps d'exécution d'une instruction SQL dépasse le seuil spécifié, le système ajoute l'ID du modèle de l'instruction SQL à la règle de limitation.

    Remarque

    Ce paramètre est obligatoire pour les instances PolarDB-X Throttling Mode lorsque le mode de limitation est défini sur Throttle by Execution Duration.

    Maximum Number of Throttled Queries

    Le nombre maximal d'ID de modèles SQL pouvant être limités en fonction du temps d'exécution. Une fois cette limite atteinte, le système ne crée plus de règles de limitation pour les autres instructions SQL dont le temps d'exécution dépasse le seuil spécifié.

    Remarque

    Ce paramètre est obligatoire pour les instances PolarDB-X Throttling Mode lorsque le mode de limitation est défini sur Throttle by Execution Duration.

    Database Account with Throttled Queries

    Le compte de base de données associé à l'instruction SQL limitée.

    Remarque

    Ce paramètre est obligatoire si vous définissez Throttling Mode sur Throttle by Keyword ou Throttle by SQL Template.

    MongoDB

    Paramètre

    Description

    Type d'opération

    Sélectionnez les types d'opérations à limiter. Vous pouvez sélectionner plusieurs types. Valeurs valides : find, insert, update et delete.

    Concurrence des opérations

    Spécifiez le nombre maximal d'opérations simultanées autorisées pour les types d'opérations sélectionnés. Les requêtes dépassant ce seuil sont limitées.

    Durée de limitation

    Définissez la durée d'activité de la règle de limitation. Une fois la règle expirée, le système la désactive automatiquement et la déplace vers l'onglet Ended.

    Kill Statement

    (Facultatif) Si vous activez cette option, lorsque la règle de limitation prend effet, le système termine automatiquement (kill) toutes les opérations actives correspondant à la règle, telles que les opérations find ou update de longue durée. Le système effectue cette action une seule fois pour libérer immédiatement les connexions et les ressources de calcul occupées. Les nouvelles requêtes arrivant après l'activation de la règle sont limitées et ne sont pas terminées. Cette fonctionnalité est idéale pour les situations d'urgence où une augmentation soudaine de la charge de travail a provoqué l'accumulation d'un grand nombre de transactions de longue durée, nécessitant une libération immédiate des ressources.

    Étendue de limitation

    Cette option est disponible uniquement pour les instances de cluster fragmenté ApsaraDB for MongoDB. Vous pouvez appliquer la règle à All Shards ou à Partial Shards.

    Collections limitées

    Spécifiez les collections auxquelles la règle s'applique. Utilisez le format databaseName.collectionName.

  9. Cliquez sur Submit.

    Une fois la règle de limitation SQL créée, vous pouvez consulter ses détails dans l'onglet Running. Le tableau suivant décrit les paramètres.

    Remarque

    Les paramètres de la liste varient légèrement selon le moteur de base de données et le mode de limitation.

    Paramètre

    Description

    Throttling Mode

    Le mode que vous avez sélectionné.

    Throttling Rule

    • Throttle by Keyword : les mots-clés de limitation configurés.

    • Throttle by SQL Template : l'ID de modèle correspondant à l'exemple SQL.

    • Throttle by Execution Duration : le seuil de temps d'exécution configuré et le nombre de modèles SQL limités.

    Maximum Concurrency

    Le nombre maximal d'instructions SQL simultanées.

    Maximum Waiting Queries

    Le nombre maximal de requêtes en attente configuré dans la règle de limitation.

    Remarque

    Ce paramètre est affiché pour les instances ApsaraDB RDS for PostgreSQL lorsque Throttling Mode est défini sur Throttle by SQL Template.

    Throttling Duration (min)

    La durée pendant laquelle la règle de limitation SQL est effective.

    Start Time

    L'heure à laquelle la règle de limitation a été configurée et est entrée en vigueur.

    Remaining time

    Le temps restant avant l'expiration de la règle de limitation.

    SQL Sample

    Un exemple d'instruction SQL à limiter.

    Remarque

    Ce paramètre est affiché si vous définissez Throttling Mode sur Throttle by SQL Template.

    Throttling Template ID

    L'ID de modèle correspondant à l'exemple SQL.

    Remarque

    Ce paramètre est affiché si vous définissez Throttling Mode sur Throttle by SQL Template.

    Status

    Indique que la règle est active.

    Database

    La base de données dans laquelle les instructions SQL seront limitées.

    Remarque

    Ce paramètre est affiché si vous définissez Throttling Mode sur Throttle by SQL Template.

    Search Path

    Le chemin de recherche correspondant à l'instruction SQL limitée.

    Remarque

    Ce paramètre est affiché pour les instances ApsaraDB RDS for PostgreSQL lorsque Throttling Mode est défini sur Throttle by SQL Template.

    Matched SQL Query

    Le nombre de requêtes SQL correspondant à la règle de limitation.

    Remarque

    Ce paramètre est affiché si vous définissez Throttling Mode sur Throttle by SQL Template.

    Waiting SQL Query

    Le nombre de requêtes SQL en attente en raison de la règle de limitation.

    Remarque

    Ce paramètre est affiché si vous définissez Throttling Mode sur Throttle by SQL Template.

    Actions

    Permet de Disable ou Modify la règle.

Database Autonomy Service (DAS) propose la fonctionnalité de limitation SQL pour contrôler le volume des demandes d'accès à la base de données et la concurrence SQL afin de garantir la disponibilité des services.

Prérequis

Les moteurs de base de données pris en charge sont les suivants :

  • ApsaraDB RDS for MySQL 5,6, 5,7 et 8,0.

  • ApsaraDB RDS for PostgreSQL 13 et versions ultérieures.

    Remarque
    • Pour PostgreSQL 13, la version mineure du moteur doit être 20250430 ou ultérieure.

    • Pour PostgreSQL 14 ou 15, la version mineure du moteur doit être 20230330 ou ultérieure.

    • Pour les versions PostgreSQL supérieures à 15, toute version mineure du moteur est prise en charge.

  • PolarDB for MySQL 5,6, 5,7 et 8,0.

  • PolarDB-X 2,0.

  • MongoDB.

Messages d'erreur de limitation

Après avoir créé une règle de limitation SQL, le système de base de données renvoie un message d'erreur spécifique si une application exécute une instruction SQL correspondant aux mots-clés ou au modèle de la règle.

Concurrence maximale

Version de l'instance

Code d'erreur

Message d'erreur

0 ou un entier positif

  • ApsaraDB RDS for MySQL 5.6

  • ApsaraDB RDS for MySQL 5.7 (version mineure du moteur antérieure à 20200630)

  • PolarDB for MySQL 5,6

1317

query execution was interrupted

MongoDB

56900

Sql controlled, skipped!

Entier positif

ApsaraDB RDS for MySQL 5.7 (version mineure du moteur 20200630 ou ultérieure)

5041

Concurrency control waiting count exceed max waiting count

Remarque

La concurrence maximale est un entier positif et les requêtes SQL associées restent dans l'état Concurrency control waiting jusqu'à ce que le nombre d'attentes dépasse la valeur du paramètre ccl_max_waiting_count (si la version de l'instance prend en charge ce paramètre), auquel cas une invite est renvoyée.

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 (version mineure du moteur 20200630 ou ultérieure)

5042

Concurrency control refuse to execute query

Remarque

Si la concurrence maximale est 0, une erreur est renvoyée immédiatement.

ApsaraDB RDS for MySQL 8,0

7535

PolarDB for MySQL 5,7

3278

PolarDB for MySQL 8,0

7534

Remarque
  • Lorsque DAS effectue une limitation SQL, si le paramètre ccl_max_waiting_count est défini sur 0, DAS utilise sa valeur par défaut de 10. Si le paramètre est défini sur une valeur supérieure à 0, DAS utilise la valeur spécifiée.

  • Pour les instances ApsaraDB RDS for MySQL 5.7 (avec une version mineure 20200630 ou ultérieure) et ApsaraDB RDS for MySQL 8,0, si le paramètre ccl_wait_timeout est défini (et pris en charge par la version de l'instance), les instructions SQL dans l'état Concurrency control waiting continuent de s'exécuter et ne sont plus limitées une fois cette limite dépassée.

  • Pour les instances PolarDB for MySQL 8,0, vous pouvez définir le paramètre ccl_mode pour contrôler le comportement des instructions SQL lorsque la limite de concurrence est dépassée. Ce paramètre est disponible uniquement sur les versions d'instances prises en charge.

    • WAIT (par défaut) : l'instruction attend dans une file d'attente.

    • REFUSE : l'instruction n'attend pas et une erreur est renvoyée immédiatement.

Scénarios

Scénario

Description

Augmentation soudaine de la concurrence SQL

Une pénétration du cache ou des appels anormaux peuvent provoquer une augmentation soudaine de la concurrence SQL.

Requêtes SQL avec skew de données

L'interrogation fréquente de données populaires lors d'une promotion commerciale peut surcharger le système.

Absence d'index

Un volume élevé d'appels SQL sur une table non indexée peut surcharger le système.

Modes de limitation

Mode

Description

Bases de données prises en charge

Keyword throttling

Limite les instructions SQL contenant des mots-clés spécifiés.

Remarque

Vous ne pouvez pas utiliser ce mode pour limiter une instruction SQL spécifique.

  • ApsaraDB RDS for MySQL

  • PolarDB for MySQL

  • PolarDB-X 2,0

Throttle by SQL Template

Saisissez un exemple SQL. Le système le traite en un modèle SQL, puis limite toutes les instructions SQL correspondantes.

  • ApsaraDB RDS for MySQL :

    • Version 5.7 avec une version mineure du moteur 20241231 ou ultérieure.

    • Version 8.0 avec une version mineure du moteur 20230630 ou ultérieure.

  • ApsaraDB RDS for PostgreSQL :

    • Version 13 avec une version mineure du moteur 20250430 ou ultérieure.

    • Version 14 avec une version mineure du moteur 20230330 ou ultérieure.

    • Version 15 avec une version mineure du moteur 20230330 ou ultérieure.

    • Versions supérieures à 15.

  • PolarDB for MySQL :

    • Version 8.0.1 avec une version mineure du moteur 8.0.1.1.31 ou ultérieure.

    • Version 8.0.2 avec une version mineure du moteur 8.0.2.2.12 ou ultérieure.

Limite les instructions SQL en faisant correspondre les ID de modèles SQL. Vous pouvez obtenir les ID de modèles SQL à partir des journaux SQL, des sessions et des résultats d'exécution EXPLAIN.

Remarque

Un ID de modèle SQL est une chaîne hexadécimale de 8 caractères.

PolarDB-X 2,0 Enterprise Edition

Throttle by Execution Duration

Si le temps d'exécution d'une instruction SQL dépasse le seuil spécifié, son ID de modèle SQL est automatiquement ajouté à la règle de limitation. Les instructions suivantes correspondant à cet ID sont ensuite exécutées selon la concurrence spécifiée par la règle.

Remarque

Vous pouvez également définir une limite sur le nombre d'ID de modèles SQL limités. Une fois la limite atteinte, aucune autre règle de limitation n'est créée pour les autres instructions SQL.

PolarDB-X 2,0 Enterprise Edition

Operation Type Throttling

Contrôle la concurrence des opérations find, insert, update et delete sur une collection spécifiée.

MongoDB

  • Version 5.0 avec une version mineure du moteur 6.0.13 ou ultérieure.

  • Version 6.0 avec une version mineure du moteur 7.0.9 ou ultérieure.

  • Version 7.0 avec une version mineure du moteur 8.0.4 ou ultérieure.

  • Version 8.0, à l'exception de la version mineure du moteur 9.0.5.

Rubriques connexes

API connexes

API

Description

EnableSqlConcurrencyControl

Active la limitation SQL.

DisableSqlConcurrencyControl

Désactive une règle de limitation spécifiée.

DisableAllSqlConcurrencyControlRules

Désactive toutes les règles de limitation en cours d'exécution.

GetRunningSqlConcurrencyControlRules

Renvoie les règles de limitation en cours d'exécution.

GetSqlConcurrencyControlRulesHistory

Renvoie les règles de limitation en cours d'exécution ou qui ont été déclenchées.

GetSqlConcurrencyControlKeywordsFromSqlText

Génère des mots-clés de limitation à partir d'une instruction SQL.