Todos os produtos
Search
Central de documentação

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

Última atualização: Nov 02, 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 esse impacto e manter a estabilidade, o Database Autonomy Service (DAS) utiliza a limitação automática de SQL. Esse recurso identifica padrões de SQL problemáticos e restringe sua simultaneidade 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

    Não há suporte para ApsaraDB RDS for MySQL 5.5.

  • PolarDB for MySQL Cluster Edition

    Nota

    Não há suporte para clusters de nó único do PolarDB for MySQL (anteriormente conhecidos como instâncias de nó único).

  • ApsaraDB MyBase for MySQL High-availability Edition

O recurso de limitação automática de SQL está disponível apenas em regiões que oferecem 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 (Chengdu), China (Zhengzhou), China (Hong Kong), Japan (Tokyo), South Korea (Seoul), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Philippines (Manila), Thailand (Bangkok), UAE (Dubai), Saudi Arabia (Riyadh), Germany (Frankfurt), US (Silicon Valley), US (Virginia) e UK (London)

Casos de uso

A limitação automática de SQL aplica-se principalmente a cenários com execução frequente de instruções de consulta SQL que consomem muitos recursos.

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 suportados: SELECT, UPDATE, DELETE e INSERT.

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

  • Apenas 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.

Além disso, observe as seguintes limitações adicionais:

  • Para identificar instruções SQL problemáticas, o sistema precisa se conectar à instância e consultar dados de sessão. Se a carga da instância for tão alta que ela não responda à consulta usada pelo DAS para obter esses dados, não será possível identificar as instruções anormais que exigem limitação. Nesse caso, nem a limitação automática de SQL nem o encerramento automático de sessões (KILL) serão executados.

  • Tanto a detecção de anomalias quanto a limitação automática dependem de dados de tendências de desempenho. Em certas circunstâncias, se uma instância não possuir esses dados, a limitação automática não ocorrerá.

  • Em cenários de carga de trabalho complexa não causados por SQL lento, ou quando instruções INSERT ou UPDATE representam uma grande proporção da carga, o recurso adota uma estratégia conservadora e pode não ser acionado.

  • O sistema não intervém quando ocorre um grande número de esperas por bloqueio.

  • A detecção de anomalias do DAS leva cerca de 2 a 3 minutos para identificar mudanças na carga da instância. Já a limitação automática requer 1 minuto de dados para identificar instruções problemáticas. Se a instância estiver sobrecarregada e responder lentamente, a coleta de dados levará mais tempo.

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 e 5,7, bem como clusters do PolarDB for MySQL 5,6, retornam o erro 1317 (execução da consulta interrompida).

  • Para 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 o número de instruções em espera exceder o valor do parâmetro ccl_max_waiting_count (caso suportado pela versão da instância), o sistema retorna o erro "Concurrency control waiting count exceed max waiting count" juntamente com 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).

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

Ao criar uma regra de limitação, o DAS extrai automaticamente palavras-chave das características da instrução SQL problemática. Use essas palavras-chave geradas diretamente na regra, pois elas correspondem às características das instruções realmente executadas pela sua aplicação, sem necessidade de ajustes manuais.

A retenção ou descarte de um literal durante a extração de palavras-chave depende do contexto semântico dele na instrução SQL:

  • Quando o literal serve como condição de comparação de valor de coluna, como em where id > 3, ele é parametrizado e descartado. A palavra-chave não retém o valor específico.

  • Se o literal funcionar como uma expressão constante independente, não associada a nenhuma coluna, como em where 2 > 3, ele é tratado como expressão-chave e mantido.

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

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 service de autonomia, acesse a aba Optimization and Throttling, selecione Automatic Throttling e configure as seguintes condições de acionamento.

    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 usar o operador OR, o valor deve ser 16 ou maior.

    • Caso utilize 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 a Maximum Throttling Duration estiver definida 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 de acionar a limitação automática.

    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 excederá 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, veja View automatic SQL throttling history.

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

    Sempre que 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 Enable event subscription 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 em sua instância de banco de dados.

    O sistema recomenda 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
    • Se já existir um modelo de alerta configurado para a instância, siga as orientações para adicionar as regras necessárias ao modelo atual.

    • Para configurar modelos e regras de alerta manualmente, consulte Configure alert templates e Configure alert rules.

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

    • Use Add Contact para cadastrar um novo contato de alerta.

    • Utilize Add Contact Group para criar um grupo de contatos de alerta.

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

    Para mais detalhes, consulte Manage alert contacts.

  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. Encontre a instância alvo e clique no respectivo ID para acessar a página de detalhes.

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

  5. Na página Instance Sessions, execute os passos abaixo:

    • Clique em SQL Throttling.

      • Na aba Running, verifique as regras de limitação ativas no momento.

      • Na aba Complete, escolha 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 de 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. Consulte SQL throttling para mais informações.

Referência de API

API

Descrição

UpdateAutoThrottleRulesAsync

Configura de forma assíncrona 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.