Todos os produtos
Search
Central de documentação

Database Autonomy Service:Governança de consultas

Última atualização: Jul 20, 2026

O Database Autonomy Service (DAS) usa análise de dados offline para examinar e marcar automaticamente consultas SQL lentas de todas as suas instâncias no dia anterior. Essa tarefa é executada diariamente à 01:00. O DAS classifica essas consultas, define prioridades de otimização, oferece sugestões de governança e permite a exportação dos dados.

Pré-requisitos

  • Sua instância de banco de dados deve ser uma das seguintes:

    • ApsaraDB RDS for MySQL

    • PolarDB for MySQL

    • MyBase MySQL

    • ApsaraDB RDS for PostgreSQL

  • Este recurso está disponível para instâncias de banco de dados nas regiões da China continental, China (Hong Kong) e Singapore.

    Nota

    A partir de 1º de abril de 2023, a governança de consultas passou a oferecer suporte a instâncias de banco de dados nas regiões China (Hong Kong) e Singapore.

  • O service de O&M está ativado.

Tutorial em vídeo

Limitações

  • A governança de consultas opera com análise offline T+1. Se você marcar uma consulta SQL como Optimization Not Required, a alteração na contagem de consultas Optimizable SQL só será refletida no dia seguinte.

  • Não é possível desativar as tags SQL predefinidas pelo DAS.

  • Para cada instância de banco de dados, o DAS analisa apenas as 200 principais consultas SQL lentas, ordenadas por quantidade de execuções. Assim, o limite máximo de Slow SQL Templates por instância é 200.

Conceitos principais

Termo

Descrição

Optimizable SQL

Após excluir as SQL statements that do not require optimization do total de instruções SQL lentas, as instruções restantes constituem o Optimizable SQL.

SQL Not Requiring Optimization

Abrange consultas SQL marcadas automaticamente pelo DAS como Ignored e aquelas marcadas manualmente pelos usuários como Optimization Not Required.

Ignored

O DAS marca automaticamente certas instruções SQL como Optimization Not Required. Exemplos incluem instruções que começam com show, create, xa, commit, rollback, select sleep ou explain.

Procedimento

  1. Faça login no console do DAS.

  2. No painel de navegação à esquerda, escolha Intelligent O&M Center > Query Governance.

  3. Na página Query Governance, visualize os resultados da governança de consultas.

    Filtre por intervalo de tempo, região e mecanismo, ou insira um ID de instância para visualizar resultados específicos.

    • Query Governance Overview: Visualize os resultados após o sistema marcar e classificar os modelos SQL.

      Nota

      O DAS contabiliza as Failed SQL Executions apenas em instâncias com o DAS Enterprise Edition ativado.

    • Query Governance Trend: Acompanhe a tendência dos resultados de governança ao longo do período selecionado.

    • Top Rankings: Consulte as listas de Best-performing Instances e Worst-performing Instances.

      • Instâncias com pior desempenho: Classifica as instâncias em ordem decrescente de execuções de consultas lentas para identificar as mais problemáticas.

      • Instâncias com melhor desempenho: Ordena as instâncias pela variação na quantidade de execuções de consultas lentas. Valores negativos indicam redução nessas execuções (boa otimização), enquanto valores positivos sinalizam aumento.

      Recomenda-se focar nos rankings de Optimizable SQL.

    • SQL to Be Optimized: Configure filtros para identificar instruções SQL que exigem governança.

      Nota

      Esses filtros são combinados usando lógica AND.

      • Separe múltiplos nomes de banco de dados com vírgulas (,) para combiná-los com lógica OR.

      • Use espaços para separar várias palavras-chave SQL, aplicando lógica AND entre elas.

      • Utilize vírgulas (,) para separar nomes de usuário de banco de dados, combinando-os com lógica OR.

      • A seleção de múltiplas tags de regra resulta em uma combinação com lógica OR.

      • Na coluna Actions da amostra SQL desejada, clique em Suggestions para ver sugestões detalhadas de governança.

      • Na coluna Actions da amostra SQL alvo, clique em Add Tag para marcar manualmente a instrução SQL. Para mais detalhes sobre as tags, consulte Manual Tagging.

        Também é possível selecionar e marcar várias instruções SQL simultaneamente.

      • Na coluna Actions referente à amostra SQL de interesse, clique em Samples para acessar os detalhes da amostra de log de consulta lenta dessa instrução.

      • Na coluna Actions da amostra SQL correspondente, clique em Trend para visualizar a análise detalhada do log de consultas lentas. Para saber mais sobre essa análise, veja Slow query logs.

      Exporte e compartilhe dados de instruções SQL otimizáveis conforme necessário. Para mais informações, consulte best practices.

    • Failed SQL: Defina filtros para localizar as instruções SQL que deseja visualizar.

      Nota
      • O DAS só contabiliza Failed SQL em instâncias com o DAS Enterprise Edition ativado.

      • É possível filtrar por nome do banco de dados e palavra-chave SQL. Esses dois critérios são combinados via lógica AND.

        • Vários nomes de banco de dados separados por vírgulas (,) seguem a lógica OR.

        • Múltiplas palavras-chave SQL separadas por espaços obedecem à lógica AND.

      Na coluna Actions da amostra SQL desejada, clique em Samples para ver os detalhes da amostra dessa instrução.

Melhores práticas

  • Utilize tags para decidir se deve otimizar consultas SQL:

    A governança divide as instruções da lista Overall Slow SQL em duas categorias: Optimization Not Required e Optimizable SQL. Use as tags SQL abaixo para filtrar e priorizar essas instruções.

    ID

    Nome da tag

    Nível

    Recomendação

    Descrição

    NEW_SQL

    Nova SQL lenta

    Crítico

    ✔️

    Consulta SQL lenta não registrada nos últimos sete dias.

    DAS_IGNORE

    Ignorada pelo DAS

    Aviso

    ➖

    O DAS marca automaticamente a consulta como não necessitando de otimização. Inclui instruções SQL que começam com show, create, xa, commit, rollback, select sleep ou explain.

    FUZZY_LIKE

    Consulta LIKE difusa

    Aviso

    ➖

    Uso de cláusula like para correspondência difusa, impedindo a utilização de índice.

    HAS_EXPR

    Contém expressão

    Aviso

    ➖

    A consulta inclui uma expressão. A coluna envolvida no cálculo não pode aproveitar índices.

    LARGE_IN_LIST

    Lista IN extensa

    Aviso

    ➖

    A cláusula IN possui mais de 200 elementos, provavelmente gerada programaticamente. Índices não podem ser usados nas colunas envolvidas.

    SELECT_STAR

    SELECT com todas as colunas

    Aviso

    ➖

    Ao usar SELECT, especifique apenas os campos necessários para evitar problemas de performance e desperdício de recursos ao retornar colunas desnecessárias.

    INDEX_ADVISOR

    Sugestão de índice

    Aviso

    ✔️

    Recomendação para criar um índice visando acelerar a execução da SQL.

    COMPLEX_JOIN

    JOIN complexo

    Aviso

    ➖

    Evite fazer join com mais de três tabelas. Os campos usados no join devem ter tipos de dados idênticos. Em junções de múltiplas tabelas, garanta que os campos de junção estejam indexados.

    CROSS_DB

    Consulta entre bancos de dados

    Aviso

    ➖

    Durante a migração de bancos de dados e tabelas entre instâncias, consultas entre bancos podem deixar de funcionar.

    SUBQUERY

    Contém subconsulta

    Aviso

    ➖

    A consulta contém uma subconsulta. Considere reescrevê-la usando JOIN para melhorar o desempenho.

    DEEP_PAGING

    Paginação profunda

    Crítico

    ➖

    A consulta usa cláusula LIMIT para paginação profunda. Recomenda-se reescrever a consulta utilizando join.

    WITHOUT_PREDICATE

    Sem predicado

    Crítico

    ✔️

    A instrução não possui predicados. Verifique se há varredura completa da tabela.

    NULL_COMPARE

    Erro de comparação NULL

    Crítico

    ➖

    Use IS NULL ou IS NOT NULL para verificar valores NULL, pois comparações diretas entre um valor e NULL sempre resultam em NULL.

    COUNT_NOT_STAR

    Sintaxe COUNT inadequada

    Crítico

    ➖

    Prefira COUNT() em vez de count(nome_coluna) ou count(constante). O count() é a sintaxe padrão SQL92 para contagem de linhas, independente do banco de dados e imune a valores NULL ou não NULL. Já o count(nome_coluna) ignora linhas onde a coluna tem valor NULL.

    LARGE_ROWS_EXAMINED

    Linhas verificadas em excesso

    Aviso

    ➖

    A consulta verifica, em média, mais de 50.000 linhas. Varreduras excessivas consomem muitos recursos, tornando a consulta lenta e podendo afetar o desempenho geral do banco de dados.

    Nota

    Considere adotar condições de filtro mais seletivas.

    LARGE_ROWS_SENT

    Linhas retornadas em excesso

    Aviso

    ➖

    A consulta retorna, em média, mais de 5.000 linhas. Procure reduzir o volume de linhas retornadas.

    NO_ADVICE

    Sem sugestão

    Aviso

    ➖

    Nenhuma sugestão de análise disponível.

    PERIOD_SQL

    SQL periódica

    Aviso

    ➖

    Executada diariamente em horário fixo.

    Concentre-se no Optimizable SQL. Utilize as tags abaixo para classificar instruções SQL como Optimization Not Required e diminuir o volume de Optimizable SQL. As tags a seguir permitem marcação manual.

    ID

    Nome da tag

    Nível

    Descrição

    USER_IGNORE

    Sem necessidade de otimização

    Aviso

    Ao adicionar esta tag, o DAS exclui a consulta das estatísticas de Optimizable SQL do dia seguinte.

    DAS_IMPORTANT

    SQL importante

    Aviso

    Marca a consulta SQL como importante.

    DAS_NOT_IMPORTANT

    SQL não importante

    Aviso

    Classifica a consulta SQL como não importante.

    DAS_IN_PLAN

    Otimização planejada

    Aviso

    Indica que a consulta SQL está agendada para otimização.

  • Exportação de dados:

    • Clique em Create Export Task para baixe todos os dados exibidos atualmente na aba SQL Details.

      Nota

      Os dados exportados ficam disponíveis para download por três dias.

    • Crie tarefas de download com diferentes condições de filtro, como instâncias ou regras, e atribua-as a responsáveis distintos para otimização.

    • Como alternativa, selecione vários registros SQL para exportar apenas esses itens específicos.

  • Compartilhamento de dados:

    Compartilhe consultas SQL lentas filtradas com membros da equipe de duas formas:

    • Selecione múltiplos registros SQL e clique em Batch Sharing. O sistema gera um link curto. Usuários com permissão de acesso ao console do DAS que clicarem nesse link verão apenas os registros SQL selecionados.

    • Outra opção é clicar em Share (ao lado de Export) para gerar uma URL que captura sua visualização atual, incluindo todos os filtros. Usuários com permissões no console do DAS podem abrir essa URL para ver os mesmos dados sem precisar reconfigurar os filtros.

Referência de API

API

Descrição

CreateQueryOptimizeTag

Adiciona uma tag a uma consulta SQL alvo.

GetQueryOptimizeExecErrorStats

Obtém dados de modelo para execuções SQL com falha.

GetQueryOptimizeExecErrorSample

Recupera dados de amostra de execuções SQL com falha.

GetQueryOptimizeSolution

Fornece sugestões de governança para uma consulta.

GetQueryOptimizeRuleList

Lista as regras de governança de consultas.

GetQueryOptimizeDataTrend

Retorna dados de tendência da governança de consultas.

GetQueryOptimizeDataTop

Obtém dados das listas de instâncias com melhor e pior desempenho.

GetQueryOptimizeDataStats

Recupera dados de modelo para governança de consultas.

GetQueryOptimizeTag

Obtém as tags de uma consulta SQL específica.

GetQueryOptimizeShareUrl

Gera a URL compartilhável dos resultados de governança de consultas.