Todos os produtos
Search
Central de documentação

Database Autonomy Service:SQL throttling

Última atualização: Aug 27, 2026

O Database Autonomy Service (DAS) oferece o recurso de limitação de SQL para controlar o volume de requisições de acesso ao banco de dados e a concorrência de SQL, garantindo a disponibilidade do service.

Pré-requisitos

Mecanismos de banco de dados compatíveis:

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

  • ApsaraDB RDS for PostgreSQL 13 e versões posteriores.

    Nota
    • Para o PostgreSQL 13, a minor engine version deve ser 20250430 ou posterior.

    • Para o PostgreSQL 14 ou 15, a versão secundária do mecanismo deve ser 20230330 ou posterior.

    • Para versões do PostgreSQL posteriores à 15, qualquer versão secundária do mecanismo é compatível.

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

  • PolarDB-X 2.0.

  • MongoDB.

Mensagens de erro de limitação

Após a criação de uma regra de limitação de SQL, o sistema de banco de dados retorna uma mensagem de erro específica se uma aplicação executar uma instrução SQL correspondente às palavras-chave ou ao modelo da regra.

Concorrência máxima

Versão da instância

Código de erro

Mensagem de erro

0 ou um número inteiro positivo

  • ApsaraDB RDS for MySQL 5,6

  • ApsaraDB RDS for MySQL 5,7 (versão secundária do mecanismo anterior a 20200630)

  • PolarDB for MySQL 5,6

1317

query execution was interrupted

MongoDB

56900

Sql controlled, skipped!

Número inteiro positivo

ApsaraDB RDS for MySQL 5,7 (versão secundária do mecanismo 20200630 ou posterior)

5041

Concurrency control waiting count exceed max waiting count

Nota

Quando a concorrência máxima é um número inteiro positivo, as consultas SQL relacionadas permanecem no estado Concurrency control waiting até que a contagem de espera exceda o valor do parâmetro ccl_max_waiting_count (caso a versão da instância seja compatível com esse parâmetro). Nesse momento, o sistema retorna um 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 (versão secundária do mecanismo 20200630 ou posterior)

5042

Concurrency control refuse to execute query

Nota

Se a concorrência máxima for 0, o sistema retornará um erro imediatamente.

ApsaraDB RDS for MySQL 8,0

7535

PolarDB for MySQL 5,7

3278

PolarDB for MySQL 8,0

7534

Nota
  • Durante a limitação de SQL pelo DAS, se o parâmetro ccl_max_waiting_count estiver definido como 0, o DAS utilizará o valor padrão de 10. Caso o parâmetro tenha um valor superior a 0, o DAS usará o valor especificado.

  • Nas instâncias ApsaraDB RDS for MySQL 5,7 (com versão secundária 20200630 ou posterior) e ApsaraDB RDS for MySQL 8,0, se o parâmetro ccl_wait_timeout estiver configurado (e for compatível com a versão da instância), as instruções SQL no estado Concurrency control waiting continuarão a execução e deixarão de ser limitadas após a ultrapassagem desse limite.

  • Para instâncias PolarDB for MySQL 8,0, defina o parâmetro ccl_mode para controlar o comportamento das instruções SQL quando o limite de concorrência for excedido. Este parâmetro está disponível apenas nas versões de instância compatíveis.

    • WAIT (padrão): A instrução aguarda em uma fila.

    • REFUSE: A instrução não aguarda e o sistema retorna um erro imediatamente.

Cenários

Cenário

Descrição

Aumento repentino na concorrência de SQL

Penetração de cache ou chamadas anormais podem causar um aumento súbito na concorrência de SQL.

Consultas SQL com skew de dados

Consultas frequentes a dados quentes durante uma promoção de vendas podem sobrecarregar o sistema.

Índices ausentes

Um alto volume de chamadas SQL em uma tabela sem índice pode sobrecarregar o sistema.

Modos de limitação

Modo

Descrição

Bancos de dados compatíveis

Keyword throttling

Limita instruções SQL que contêm palavras-chave especificadas.

Nota

Não é possível usar este modo para limitar uma instrução SQL específica.

  • ApsaraDB RDS for MySQL

  • PolarDB for MySQL

  • PolarDB-X 2.0

Throttle by SQL Template

Insira um exemplo de SQL. O sistema o processa em um modelo de SQL e limita todas as instruções SQL correspondentes.

  • ApsaraDB RDS for MySQL:

    • Versão 5,7 com versão secundária do mecanismo 20241231 ou posterior.

    • Versão 8,0 com versão secundária do mecanismo 20230630 ou posterior.

  • ApsaraDB RDS for PostgreSQL:

    • Versão 13 com versão secundária do mecanismo 20250430 ou posterior.

    • Versão 14 com versão secundária do mecanismo 20230330 ou posterior.

    • Versão 15 com versão secundária do mecanismo 20230330 ou posterior.

    • Versões posteriores à 15.

  • PolarDB for MySQL:

    • Versão 8.0.1 com versão secundária do mecanismo 8.0.1.1.31 ou posterior.

    • Versão 8.0.2 com versão secundária do mecanismo 8.0.2.2.12 ou posterior.

Limita instruções SQL correspondendo aos IDs de modelo de SQL. Obtenha os IDs de modelo de SQL nos logs de SQL, sessões e resultados de execução EXPLAIN.

Nota

Um ID de modelo de SQL é uma string hexadecimal de 8 caracteres.

PolarDB-X 2.0 Enterprise Edition

Throttle by Execution Duration

Se o tempo de execução de uma instrução SQL exceder o limiar especificado, o sistema adicionará automaticamente seu ID de modelo de SQL à regra de limitação. As instruções subsequentes correspondentes a esse ID serão executadas com base na concorrência definida na regra.

Nota

Também é possível definir um limite para o número de IDs de modelo de SQL limitados. Ao atingir esse limite, o sistema não criará novas regras de limitação para outras instruções SQL.

PolarDB-X 2.0 Enterprise Edition

Operation Type Throttling

Controla a concorrência de operações find, insert, update e delete em uma coleção especificada.

MongoDB

  • Versão 5,0 com versão secundária do mecanismo 6.0.13 ou posterior.

  • Versão 6,0 com versão secundária do mecanismo 7.0.9 ou posterior.

  • Versão 7,0 com versão secundária do mecanismo 8.0.4 ou posterior.

  • Versão 8,0, exceto a versão secundária do mecanismo 9.0.5.

Procedimento

Este tópico usa o ApsaraDB RDS for MySQL como exemplo para descrever como utilizar o recurso de limitação. Para operações relacionadas a outros tipos de banco de dados, consulte Related documentation.

  1. Faça login no console do DAS.

  2. No painel de navegação à esquerda, clique em Intelligent O&M Center > Instance Monitoring.

  3. Localize a instância desejada e clique no ID da instância para abrir a página de detalhes.

  4. No painel de navegação à esquerda, clique em Instance Sessions.

  5. Na página Session Management, clique em SQL Throttling.

  6. Na caixa de diálogo, clique em Create Throttling Rule.

  7. Na caixa de diálogo Create Throttling Rule, configure os seguintes parâmetros de acordo com o mecanismo de banco de dados.

  8. RDS for MySQL

    Parâmetro

    Descrição

    Throttling Mode

    Selecione um modo de limitação conforme necessário.

    SQL Type

    Tipo da instrução SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by Keyword.

    • É possível limitar instruções INSERT apenas nos seguintes mecanismos de banco de dados:

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 e 8,0

      • PolarDB-X 2.0

    • Não é possível limitar instruções INSERT...SELECT....

    Database

    Banco de dados onde as instruções SQL serão limitadas.

    Nota

    Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by SQL Template.

    Maximum Concurrency

    Número máximo de instruções SQL simultâneas. O valor mínimo é 0.

    Nota

    A limitação começa quando o número de instruções SQL simultâneas correspondentes à regra atinge esse valor.

    Throttling Duration

    Duração durante a qual a regra de limitação de SQL permanece efetiva.

    Importante

    A limitação de SQL é uma medida de emergência. Recomendamos definir a duração com base nas necessidades do seu negócio e desativar a regra quando ela não for mais necessária.

    SQL Keywords

    Palavras-chave nas instruções SQL a serem limitadas.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by Keyword.

    • Ao especificar várias palavras-chave, a regra de limitação será acionada apenas se uma instrução SQL contiver todas as palavras-chave especificadas. Separe múltiplas palavras-chave com til (~). A ordem das palavras-chave não importa.

      Por exemplo, se a instrução original for 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 ,

      as palavras-chave de limitação correspondentes serão SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Não é possível especificar apenas SELECT, INSERT, UPDATE, DELETE como palavras-chave de limitação. As palavras-chave diferenciam maiúsculas de minúsculas. No entanto, algumas versões anteriores de instâncias não fazem essa distinção.

    SQL Sample

    Exemplo de instrução SQL a ser limitada.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by SQL Template.

    • Para instruções SQL complexas, o DAS transforma o SQL Sample para processamento interno, mas o modelo final de SQL permanece inalterado. Essa transformação não afeta o efeito da limitação.

      Por exemplo, se você inserir select name from das where name = das and age = 21 limit 20,

      ele será convertido no modelo select name from das where name = ? and age = ? limit ?

      e depois reescrito como select name from das where name = param0 and age = param1 limit 20.

    RDS for PostgreSQL

    Parâmetro

    Descrição

    Throttling Mode

    O ApsaraDB RDS for PostgreSQL é compatível apenas com Throttle by SQL Template.

    Database

    Banco de dados onde as instruções SQL serão limitadas.

    Search Path

    Caminho de busca para a limitação de SQL.

    Nota

    Separe vários caminhos com vírgulas (,). O valor padrão é information_schema,public.

    Maximum Concurrency

    Número máximo de instruções SQL simultâneas. O valor mínimo é 0.

    Nota

    A limitação começa quando o número de instruções SQL simultâneas correspondentes à regra atinge esse valor.

    Maximum Waiting Queries

    Número máximo de consultas em espera.

    Throttling Duration

    Duração durante a qual a regra de limitação de SQL permanece efetiva.

    Importante

    A limitação de SQL é uma medida de emergência. Recomendamos definir a duração com base nas necessidades do seu negócio e desativar a regra quando ela não for mais necessária.

    SQL Sample

    Exemplo de instrução SQL a ser limitada.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by SQL Template.

    • Para instruções SQL complexas, o DAS transforma o SQL Sample para processamento interno, mas o modelo final de SQL permanece inalterado. Essa transformação não afeta o efeito da limitação.

      Por exemplo, se você inserir select name from das where name = "das" and age = 21 limit 20,

      ele será convertido no modelo select name from das where name = ? and age = ? limit ?

      e depois reescrito como select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB for MySQL

    Parâmetro

    Descrição

    Throttling Mode

    Selecione um modo de limitação conforme necessário.

    SQL Type

    Tipo da instrução SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • É possível limitar instruções INSERT apenas nos seguintes mecanismos de banco de dados:

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 e 8,0

      • PolarDB-X 2.0

    • Não é possível limitar instruções INSERT...SELECT....

    Maximum Concurrency

    Número máximo de instruções SQL simultâneas. O valor mínimo é 0.

    Nota

    A limitação começa quando o número de instruções SQL simultâneas correspondentes à regra atinge esse valor.

    Database

    Banco de dados onde as instruções SQL serão limitadas.

    Nota

    Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by SQL Template.

    Throttling Duration

    Duração durante a qual a regra de limitação de SQL permanece efetiva.

    Importante

    A limitação de SQL é uma medida de emergência. Recomendamos definir a duração com base nas necessidades do seu negócio e desativar a regra quando ela não for mais necessária.

    SQL Keywords

    Palavras-chave nas instruções SQL a serem limitadas.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by Keyword.

    • Ao especificar várias palavras-chave, a regra de limitação será acionada apenas se uma instrução SQL contiver todas as palavras-chave especificadas. Separe múltiplas palavras-chave com til (~). A ordem das palavras-chave não importa.

      Por exemplo, se a instrução original for 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 ,

      as palavras-chave de limitação correspondentes serão SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Não é possível especificar apenas SELECT, INSERT, UPDATE ou DELETE como palavras-chave de limitação. As palavras-chave diferenciam maiúsculas de minúsculas. No entanto, algumas versões anteriores de instâncias não fazem essa distinção.

    SQL Sample

    Exemplo de instrução SQL a ser limitada.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by SQL Template.

    • Para instruções SQL complexas, o DAS transforma o SQL Sample para processamento interno, mas o modelo final de SQL permanece inalterado. Essa transformação não afeta o efeito da limitação.

      Por exemplo, se você inserir select name from das where name = "das" and age = 21 limit 20,

      ele será convertido no modelo select name from das where name = ? and age = ? limit ?

      e depois reescrito como select name from das where name = "param0" and age = "param1" limit 20.

    PolarDB-X 2.0

    Parâmetro

    Descrição

    Throttling Mode

    Selecione um modo de limitação conforme necessário.

    SQL Type

    Tipo da instrução SQL. Valores válidos: SELECT, UPDATE, DELETE e INSERT.

    Nota
    • É possível limitar instruções INSERT apenas nos seguintes mecanismos de banco de dados:

      • ApsaraDB RDS for MySQL 8,0

      • PolarDB for MySQL 5,7 e 8,0

      • PolarDB-X 2.0

    • Não é possível limitar instruções INSERT...SELECT....

    Maximum Concurrency

    Número máximo de instruções SQL simultâneas. O valor mínimo é 0.

    Nota

    A limitação começa quando o número de instruções SQL simultâneas correspondentes à regra atinge esse valor.

    Throttling Duration

    Duração durante a qual a regra de limitação de SQL permanece efetiva.

    Importante

    A limitação de SQL é uma medida de emergência. Recomendamos definir a duração com base nas necessidades do seu negócio e desativar a regra quando ela não for mais necessária.

    SQL Keywords

    Palavras-chave nas instruções SQL a serem limitadas.

    Nota
    • Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by Keyword.

    • Ao especificar várias palavras-chave, a regra de limitação será acionada apenas se uma instrução SQL contiver todas as palavras-chave especificadas. Separe múltiplas palavras-chave com til (~). A ordem das palavras-chave não importa.

      Por exemplo, se a instrução original for 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 ,

      as palavras-chave de limitação correspondentes serão SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id.

    • Não é possível especificar apenas SELECT, INSERT, UPDATE ou DELETE como palavras-chave de limitação. As palavras-chave diferenciam maiúsculas de minúsculas. No entanto, algumas versões anteriores de instâncias não fazem essa distinção.

    SQL Template ID

    ID do modelo de SQL a ser limitado. Um ID é uma string hexadecimal de 8 caracteres. Separe vários IDs de modelo de SQL com vírgulas (,).

    Nota

    Este parâmetro é obrigatório para instâncias PolarDB-X quando o Throttling Mode está definido como Throttle by SQL Template.

    Minimum SQL Execution Duration

    Limiar para o tempo de execução de SQL. Se o tempo de execução de uma instrução SQL exceder o limiar especificado, o sistema adiciona o ID do modelo da instrução SQL à regra de limitação.

    Nota

    Este parâmetro é obrigatório para instâncias PolarDB-X quando o Throttling Mode está definido como Throttle by Execution Duration.

    Maximum Number of Throttled Queries

    Número máximo de IDs de modelo de SQL que podem ser limitados com base no tempo de execução. Após atingir esse limite, o sistema não cria mais regras de limitação para outras instruções SQL cujo tempo de execução exceda o limiar especificado.

    Nota

    Este parâmetro é obrigatório para instâncias PolarDB-X quando o Throttling Mode está definido como Throttle by Execution Duration.

    Database Account with Throttled Queries

    Conta de banco de dados associada à instrução SQL limitada.

    Nota

    Este parâmetro é obrigatório se você definir o Throttling Mode como Throttle by Keyword ou Throttle by SQL Template.

    MongoDB

    Parâmetro

    Descrição

    Operation type

    Selecione os tipos de operação a serem limitados. É possível selecionar vários tipos. Valores válidos: find, insert, update e delete.

    Operation concurrency

    Especifique o número máximo de operações simultâneas permitidas para os tipos de operação selecionados. Requisições que excederem esse limiar serão limitadas.

    Throttling duration

    Defina a duração ativa para a regra de limitação. Após a expiração da regra, o sistema a desativa automaticamente e a move para a aba Ended.

    Kill Statement

    (Opcional) Se você ativar esta opção, quando a regra de limitação entrar em vigor, o sistema encerrará (kill) automaticamente quaisquer operações ativas correspondentes à regra, como operações find ou update de longa duração. O sistema executa essa ação apenas uma vez para liberar imediatamente conexões ocupadas e recursos de computação. Novas requisições recebidas após a ativação da regra serão limitadas, mas não encerradas. Este recurso é ideal para situações de emergência em que um pico repentino de carga de trabalho causou o acúmulo de muitas transações de longa duração, exigindo uma liberação imediata de recursos.

    Throttling scope

    Esta opção está disponível apenas para instâncias de cluster fragmentado do ApsaraDB for MongoDB. Aplique a regra a All Shards ou Partial Shards.

    Throttled collections

    Especifique as coleções às quais a regra se aplica. Use o formato databaseName.collectionName.

  9. Clique em Submit.

    Após a criação da regra de limitação de SQL, visualize seus detalhes na aba Running. A tabela a seguir descreve os parâmetros.

    Nota

    Os parâmetros na lista variam ligeiramente dependendo do mecanismo de banco de dados e do modo de limitação.

    Parâmetro

    Descrição

    Throttling Mode

    Modo selecionado.

    Throttling Rule

    • Throttle by Keyword: Palavras-chave de limitação configuradas.

    • Throttle by SQL Template: ID do modelo correspondente ao SQL Sample.

    • Throttle by Execution Duration: Limiar de tempo de execução configurado e número de modelos de SQL limitados.

    Maximum Concurrency

    Número máximo de instruções SQL simultâneas.

    Maximum Waiting Queries

    Número máximo de consultas em espera configurado na regra de limitação.

    Nota

    Este parâmetro é exibido para instâncias ApsaraDB RDS for PostgreSQL quando o Throttling Mode está definido como Throttle by SQL Template.

    Throttling Duration (min)

    Duração durante a qual a regra de limitação de SQL permanece efetiva.

    Start Time

    Momento em que a regra de limitação foi configurada e entrou em vigor.

    Remaining time

    Tempo restante antes da expiração da regra de limitação.

    SQL Sample

    Exemplo de instrução SQL a ser limitada.

    Nota

    Este parâmetro é exibido se você definir o Throttling Mode como Throttle by SQL Template.

    Throttling Template ID

    ID do modelo correspondente ao SQL Sample.

    Nota

    Este parâmetro é exibido se você definir o Throttling Mode como Throttle by SQL Template.

    Status

    Indica que a regra está ativa.

    Database

    Banco de dados onde as instruções SQL serão limitadas.

    Nota

    Este parâmetro é exibido se você definir o Throttling Mode como Throttle by SQL Template.

    Search Path

    Caminho de busca correspondente à instrução SQL limitada.

    Nota

    Este parâmetro é exibido para instâncias ApsaraDB RDS for PostgreSQL quando o Throttling Mode está definido como Throttle by SQL Template.

    Matched SQL Query

    Número de consultas SQL correspondentes à regra de limitação.

    Nota

    Este parâmetro é exibido se você definir o Throttling Mode como Throttle by SQL Template.

    Waiting SQL Query

    Número de consultas SQL em espera devido à regra de limitação.

    Nota

    Este parâmetro é exibido se você definir o Throttling Mode como Throttle by SQL Template.

    Actions

    Permite Disable ou Modify a regra.

Tópicos relacionados

APIs relacionadas

API

Descrição

EnableSqlConcurrencyControl

Ativa a limitação de SQL.

DisableSqlConcurrencyControl

Desativa uma regra de limitação especificada.

DisableAllSqlConcurrencyControlRules

Desativa todas as regras de limitação em execução.

GetRunningSqlConcurrencyControlRules

Retorna as regras de limitação em execução.

GetSqlConcurrencyControlRulesHistory

Retorna as regras de limitação em execução ou acionadas.

GetSqlConcurrencyControlKeywordsFromSqlText

Gera palavras-chave de limitação a partir de uma instrução SQL.