Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Automatic SQL throttling

Última atualização: Jul 15, 2026

O Database Autonomy Service (DAS) detecta automaticamente instruções SQL problemáticas durante picos de tráfego e aplica limitações com base em palavras-chave, sem intervenção manual. Esse recurso protege sua instância ApsaraDB RDS contra degradação de desempenho causada por aumentos repentinos de concorrência, consultas sem índices ou padrões de requisição abusivos.

Versões compatíveis

A limitação automática de SQL está disponível para instâncias ApsaraDB RDS que executam as seguintes versões e edições do MySQL:

Versão do MySQL

Edições compatíveis

MySQL 8.0

RDS High-availability Edition, RDS Enterprise Edition

MySQL 5.7

RDS High-availability Edition, RDS Enterprise Edition

MySQL 5.6

RDS High-availability Edition

Casos de uso

A limitação automática de SQL foi projetada para os seguintes cenários:

  • Picos de tráfego: penetração de cache ou requisições suspeitas provocam aumento repentino na concorrência de consultas SQL de um tipo específico.

  • Consultas pesadas de usuário único: um usuário envia grande volume de consultas SQL em curto período — como um cliente que faz muitos pedidos simultaneamente — e consome parcela desproporcional dos recursos do banco de dados.

  • Índices ausentes: a execução massiva de instruções SQL sem índices adequados prejudica o desempenho de outras cargas de trabalho.

Limitações

O modo de limitação utilizado é Limitado por palavras-chave.

  • Tipos de SQL compatíveis: SELECT, UPDATE, DELETE e INSERT

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

  • A limitação de INSERT é compatível apenas com instâncias ApsaraDB RDS com MySQL 8.0 e clusters PolarDB for MySQL com MySQL 5.7 ou 8.0

Como funciona

Quando a limitação automática de SQL é acionada, o comportamento varia conforme a versão do MySQL em execução na instância ApsaraDB RDS.

MySQL 5.6 ou MySQL 5.7

As instruções SQL limitadas são interrompidas e o seguinte erro é retornado ao cliente:

1317: "query execution was interrupted"

MySQL 8.0

As instruções SQL limitadas entram no estado Concurrency control waiting. Se a quantidade de instruções em espera ultrapassar o valor do parâmetro ccl_max_waiting_count, o sistema retorna o seguinte erro:

ERROR 7534 (HY000): "Concurrency control waiting count exceed max waiting count"

O parâmetro ccl_max_waiting_count define quantas instruções limitadas podem aguardar antes que um erro seja retornado:

**Valor de ccl_max_waiting_count**

Comportamento

0 (padrão)

Todas as instruções limitadas aguardam indefinidamente; nenhum erro é retornado

0 quando o DAS ativa a limitação

O DAS altera automaticamente o valor para 10

Qualquer valor > 0

O DAS utiliza o valor especificado

Ativar a limitação automática de SQL

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância ApsaraDB RDS está localizada. Encontre a instância e clique em seu ID.

  2. Abra o painel Autonomous Function Management por um dos caminhos abaixo:

    • No painel de navegação à esquerda, escolha Autonomy Services > Diagnostics. Clique na aba Autonomy Center e, em seguida, clique em Autonomy Service Settings.

    • No painel de navegação à esquerda, escolha Autonomy Services > Dashboard. Na aba Performance Trends, clique em Autonomy Service Settings.

  3. Na aba Autonomous Function Settings, ative o service de autonomia. Clique na aba Optimization and Throttling, selecione Automatic Throttling e configure as condições de acionamento da limitação.

    Quando as condições forem atendidas dentro da janela de tempo configurada, o DAS iniciará o monitoramento da instância. Caso o problema persista após o início da limitação, o DAS reverte automaticamente a operação. A duração da limitação nunca excede o valor definido em Maximum Throttling Duration .

    Parâmetro

    Descrição

    CPU Utilization >

    Limiar de uso de CPU. Defina um valor ≥ 70. Por exemplo, insira 80 para acionar a limitação quando a utilização da CPU ultrapassar 80%.

    Number of Active Sessions >

    Limiar de contagem de sessões ativas. Defina ≥ 16 ao usar relação OR com CPU Utilization, ou ≥ 2 ao usar relação AND. Por exemplo, insira 64 para acionar a limitação quando as sessões ativas excederem 64.

    Available Time Range

    Janela de tempo durante a qual a limitação automática de SQL permanece ativa.

    Maximum Throttling Duration

    Duração máxima de um único evento de limitação. Se definido como 0, a limitação é acionada imediatamente, mas torna-se inválida logo em seguida.

    Duration >

    Tempo que as condições de CPU e sessão devem persistir antes do acionamento da limitação. Por exemplo, insira 2 minutos para que a limitação seja ativada somente após as condições se manterem por mais de 2 minutos.

    2

  4. Clique em OK.

  5. (Opcional) Na seção Alert Configuration, configure um modelo de alerta e inscreva-se nas notificações para receber avisos quando uma tarefa de limitação iniciar ou parar. O sistema recomenda um modelo de alerta e preenche previamente regras de alerta para os eventos de autonomia relevantes. Siga as instruções na tela para concluir a configuração.

    1. Na etapa Select Alert Contact Group, selecione um grupo de contatos de alerta. Para mais informações, consulte Gerenciar contatos de alerta.

      • Clique em Add Contact para adicionar um novo contato de alerta.

      • Clique em Create Contact Group para criar um novo grupo de contatos de alerta.

      • Clique em Edit ou Remove para atualizar ou excluir um contato existente.

    2. Na etapa Associate with Resources, confirme os recursos associados.

    3. Clique em Submit Configuration e confirme na caixa de diálogo exibida.

    Se sua instância ApsaraDB RDS já possuir um modelo de alerta, adicione as regras de alerta necessárias conforme solicitado. Para criar um modelo do zero, consulte Configurar modelos de alerta e Configurar regras de alerta .

Visualizar histórico de limitações

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância ApsaraDB RDS está localizada. Encontre a instância e clique em seu ID.

  2. No painel de navegação à esquerda, escolha Autonomy Services > Diagnostics.

  3. Clique na aba Session Management.

  4. Na seção Instance Sessions, clique em SQL Throttling. Na caixa de diálogo, visualize as tarefas de limitação por status:

    Aba

    Descrição

    Running

    Regras de limitação atualmente em vigor. A tarefa permanece neste estado até que a Maximum Throttling Duration expire ou até que o DAS reverta automaticamente a operação.

    Complete

    Tarefas de limitação finalizadas. Selecione um intervalo de tempo para filtrar o histórico.

    SQL限流

    SQL限流

  5. Caso tenha selecionado Kill Abnormal SQL Statements in Execution durante a configuração da limitação, clique em End Session History para visualizar as sessões encerradas.

Próximos passos

Referência de API

Operação

Descrição

UpdateAutoThrottleRulesAsync

Configura assincronamente parâmetros de limitação automática de SQL para várias instâncias de banco de dados simultaneamente

GetAutoThrottleRules

Consulta as regras de limitação automática de SQL das instâncias de banco de dados

DisableAutoThrottleRules

Desativa o recurso de limitação automática de SQL para várias instâncias de banco de dados simultaneamente