Todos os produtos
Search
Central de documentação

Database Autonomy Service:Limitação automática de SQL

Última atualização: Jun 27, 2026

Picos repentinos de tráfego, consultas que consomem muitos recursos ou um alto volume de consultas sem índice podem comprometer o desempenho do banco de dados. Para controlar esses impactos, o Database Autonomy Service (DAS) usa a limitação automática de SQL e mantém a estabilidade do sistema. Esse recurso identifica padrões problemáticos de SQL e restringe sua concorrência com base em palavras-chave, garantindo a disponibilidade dos serviços principais.

Pré-requisitos

Este recurso está disponível para as seguintes instâncias de banco de dados:

Banco de dados

Região

  • ApsaraDB RDS for MySQL High-availability Edition ou Enterprise Edition de três nós

    Nota

    O ApsaraDB RDS for MySQL 5.5 não tem suporte.

  • PolarDB for MySQL Cluster Edition

    Nota

    Clusters de nó único do PolarDB for MySQL (anteriormente conhecidos como instâncias de nó único) não têm suporte.

  • ApsaraDB MyBase for MySQL High-availability Edition

A limitação automática de SQL está disponível apenas em regiões com suporte à detecção de anomalias, pois depende dessa capacidade. As regiões compatíveis incluem:

China (Hangzhou), China (Shanghai), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Nanjing - Local Region) (Being Decommissioned), China (Fuzhou - Local Region) (Being Decommissioned), China (Chengdu), China (Zhengzhou), China (Hong Kong), Japão (Tóquio), Coreia do Sul (Seul), Singapura, Malásia (Kuala Lumpur), Indonésia (Jacarta), Filipinas (Manila), Tailândia (Bangkok), Emirados Árabes Unidos (Dubai), Arábia Saudita (Riade), Alemanha (Frankfurt), EUA (Vale do Silício), EUA (Virgínia) e Reino Unido (Londres)

Casos de uso

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

  • Picos de carga de trabalho: aumento repentino na concorrência de consultas SQL específicas, geralmente causado por eventos como penetração de cache ou comportamento anômalo da aplicação.

  • Contenção de recursos: consultas associadas a contas específicas, como aquelas com grande volume de dados de pedidos, consomem recursos excessivos do banco de dados.

  • Consultas ineficientes: execução de um alto volume de consultas sem o índice adequado, degradando o desempenho geral do negócio.

Limitações

A limitação automática de SQL opera no modo Throttled by Keywords e apresenta as seguintes restrições:

  • Tipos de instruções SQL com suporte: SELECT, UPDATE, DELETE e INSERT.

  • Instruções do tipo INSERT...SELECT... não podem ser limitadas.

  • Somente instâncias do ApsaraDB RDS for MySQL 8,0 e clusters do PolarDB for MySQL 5,7 ou 8,0 permitem limitação para instruções INSERT.

Como funciona

Após criar uma regra de limitação automática, quando uma aplicação executa uma instrução SQL correspondente a essa regra, o banco de dados responde da seguinte forma:

  • Instâncias do ApsaraDB RDS for MySQL 5,6, ApsaraDB RDS for MySQL 5,7 e clusters do PolarDB for MySQL 5,6 retornam o erro 1317 (execução da consulta interrompida).

  • Em instâncias do ApsaraDB RDS for MySQL 8,0 e clusters do PolarDB for MySQL 5,7 ou PolarDB for MySQL 8,0, as instruções SQL limitadas entram no estado Concurrency control waiting. Se a quantidade de instruções em espera exceder o valor do parâmetro ccl_max_waiting_count (caso a versão da instância tenha suporte), o sistema retorna o erro "Concurrency control waiting count exceed max waiting count" acompanhado de um dos seguintes códigos de erro:

    • ApsaraDB RDS for MySQL 8,0: ERROR 7534 (HY000).

    • PolarDB for MySQL 5,7: ERROR 3277 (HY000).

    • PolarDB for MySQL 8,0: ERROR 7533 (HY000).

    Caso ccl_max_waiting_count esteja definido com o valor padrão 0, todas as instruções SQL limitadas permanecem no estado Concurrency control waiting sem retorno de erro. Ao configurar a limitação pelo DAS, se esse parâmetro estiver em 0, o serviço o ajustará automaticamente para o valor padrão de 10. Se você já tiver definido um valor personalizado maior que 0, o DAS respeitará essa configuração.

Para uma explicação técnica detalhada sobre a limitação automática de SQL, consulte Limitação automática de SQL.

Procedimento

  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 Autonomy Center.

  5. Na página Autonomy Center, clique em Autonomy Service Settings no canto superior direito.

  6. No painel Autonomous Function Management, clique na aba Autonomous Function Settings. Ative a chave principal do serviço de autonomia, acesse a aba Optimization and Throttling, selecione Automatic Throttling e configure as condições de acionamento abaixo.

    Parâmetro

    Descrição

    CPU Utilization >

    Define o limiar de utilização da CPU. O valor deve ser igual ou superior a 70%.

    Number of Active Sessions >

    Especifica o limiar para o número de sessões ativas.

    • Ao utilizar o operador OR, o valor mínimo é 16.

    • Ao utilizar o operador AND, o valor mínimo é 2.

    Available Time Range

    Período durante o qual a limitação automática de SQL pode ser executada.

    Maximum Throttling Duration

    Duração máxima permitida para uma única tarefa de limitação de SQL.

    Se Maximum Throttling Duration estiver definido como 0, a limitação será acionada ao atender às condições, mas ficará inativa imediatamente.

    Duration >

    Tempo que a utilização da CPU e o número de sessões ativas devem permanecer acima dos limites antes que a limitação automática seja acionada.

    Nota

    Por exemplo, dentro do intervalo de tempo disponível, você pode definir a seguinte condição: se a utilização da CPU ultrapassar 80% E o número de sessões ativas exceder 64 por mais de 2 minutos, o DAS iniciará a limitação automática.

    • Caso o problema persista após a limitação, a operação será revertida automaticamente.

    • A duração da limitação não ultrapassará o valor especificado em Maximum Throttling Duration.

  7. Clique em OK.

    Visualize o histórico de limitação automática de SQL na página Instance Sessions. Para mais detalhes, consulte Visualizar histórico de limitação automática de SQL.

  8. (Opcional) Clique na aba Event Subscription Settings para configurar notificações sobre eventos de limitação automática de SQL.

    Quando o DAS aciona a limitação automática, ele gera um evento de nível Warning. Para receber alertas, ative a opção Enable Subscription Service e defina os parâmetros de notificação. Consulte Ativar assinatura de eventos para mais informações.

  9. Configure um Alert Template para assinar as notificações. Isso garante que você seja informado sobre eventos de limitação automática de SQL na sua instância de banco de dados.

    O sistema sugere um modelo e adiciona as regras de alerta correspondentes para eventos de autonomia. Siga as instruções na tela para concluir a configuração.

    Nota
  10. Selecione um Alert Contact Group para receber as notificações.

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

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

    • Para editar ou remover um contato existente, localize-o e clique em Modify ou Remove na coluna Actions.

    Para mais detalhes, consulte Gerenciar contatos de alerta.

  11. Clique em Submit Configuration e confirme as configurações na caixa de diálogo exibida.

Visualizar histórico de limitação

  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 Instance Sessions, execute as etapas a seguir:

    • Clique em SQL Throttling.

      • Na aba Running, visualize as regras de limitação atualmente ativas.

      • Na aba Complete, selecione um intervalo de tempo para consultar o histórico de tarefas de limitação concluídas.

      O histórico contém as colunas: Throttling Mode, Max Concurrency, Start Time, End Time, Throttling Rule e Actions. Clique em Enable na coluna Actions para reativar uma regra finalizada.

    • Caso tenha selecionado Kill Abnormal SQL Statements in Execution nas configurações, clique em End Session History para ver o registro das sessões encerradas.

Referências

  • Otimize consultas SQL para melhorar o desempenho do banco de dados e reduzir o consumo de recursos.

  • Se a utilização da CPU ou o número de sessões ativas não atingir o limiar definido, o DAS não acionará a limitação automática. Nessa situação, configure manualmente uma regra para limitar instruções SQL. Saiba mais em Limitação de SQL.

Referência de API

API

Descrição

UpdateAutoThrottleRulesAsync

Configura assincronamente os parâmetros de limitação automática de SQL para uma ou mais instâncias de banco de dados.

GetAutoThrottleRules

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

DisableAutoThrottleRules

Desativa o recurso de limitação automática de SQL para uma ou mais instâncias de banco de dados indicadas.