Tutorial: Query Performance Insight for Azure Database for MySQL - Servidor flexível
O Query Performance Insight propõe fornecer análise de consulta inteligente para bancos de dados. Os insights mais preferidos são os padrões de carga de trabalho e as consultas de execução mais longa. Compreender essas informações pode ajudá-lo a encontrar quais consultas otimizar para melhorar o desempenho geral e usar seus recursos disponíveis de forma eficiente.
O Query Performance Insight foi projetado para ajudá-lo a gastar menos tempo solucionando problemas de desempenho do banco de dados, fornecendo informações como:
- Top N consultas de longa duração e suas tendências.
- Os detalhes da consulta: exiba o histórico de execução com tempo de consulta mínimo, máximo, médio e desvio padrão.
- As utilizações de recursos (CPU, memória e armazenamento).
Este artigo descreve como usar o Banco de Dados do Azure para logs de consulta lenta do Servidor Flexível MySQL, a ferramenta Análise de Log e modelos de pastas de trabalho para visualizar o Query Performance Insight for Azure Database for MySQL Flexible Server.
Neste tutorial, irá aprender a:
- Configurar logs de consulta lenta usando o portal do Azure ou a CLI do Azure
- Configurar diagnósticos
- Exibir logs de consultas lentas usando o Log Analytics
- Exibir logs de consulta lentos usando pastas de trabalho
Pré-requisitos
- Guia de início rápido: crie uma instância do Banco de Dados do Azure para MySQL com o portal do Azure.
- Crie um espaço de trabalho do Log Analytics.
Configurar logs de consulta lentos usando o portal do Azure
Inicie sessão no portal do Azure.
Selecione seu Banco de Dados do Azure para a instância do Servidor Flexível MySQL.
No painel esquerdo, em Configurações, selecione Parâmetros do servidor.
Para o parâmetro slow_query_log, selecione ON.
Para os outros parâmetros, como long_query_time e log_slow_admin_statements, consulte a documentação de logs de consulta lenta.
Selecione Guardar.
Você pode retornar à lista de logs fechando a página Parâmetros do servidor.
Configurar logs de consulta lenta usando a CLI do Azure
Como alternativa, você pode habilitar e configurar logs de consulta lenta para sua instância do Servidor Flexível do Banco de Dados do Azure para MySQL a partir da CLI do Azure executando o seguinte comando:
Importante
Para garantir que o desempenho da instância do Servidor Flexível do Banco de Dados do Azure para MySQL não seja fortemente afetado, recomendamos que você registre apenas os tipos de evento e os usuários necessários para fins de auditoria.
- Habilite logs de consulta lenta.
az mysql flexible-server parameter set \
--name slow_query_log \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON
- Defina long_query_time tempo para 10 segundos. Essa configuração registrará todas as consultas executadas por mais de 10 segundos. Ajuste esse limite com base na sua definição para consultas lentas.
az mysql server configuration set \
--name long_query_time \
--resource-group myresourcegroup \
--server mydemoserver \
--value 10
Configurar diagnósticos
Os logs de consulta lenta são integrados às configurações de diagnóstico do Azure Monitor para permitir que você canalize seus logs para qualquer um dos três coletores de dados:
- Um espaço de trabalho do Log Analytics
- Um hub de eventos
- Uma conta de armazenamento
Nota
Você deve criar seus coletores de dados antes de definir as configurações de diagnóstico. Você pode acessar os logs de consulta lenta nos coletores de dados configurados. Pode levar até 10 minutos para que os logs apareçam.
No painel esquerdo, em Monitoramento, selecione Configurações de diagnóstico.
No painel Configurações de diagnóstico, selecione Adicionar configuração de diagnóstico.
Na caixa Nome, insira um nome para a configuração de diagnóstico.
Especifique para quais destinos (espaço de trabalho do Log Analytics, um hub de eventos ou uma conta de armazenamento) enviar os logs de consulta lenta marcando as caixas de seleção correspondentes.
Nota
Para este tutorial, você enviará os logs de consulta lenta para um espaço de trabalho do Log Analytics.
Em Log, para o tipo de log, marque a caixa de seleção MySqlSlowLogs .
Depois de configurar os coletores de dados para canalizar os logs de consulta lenta, selecione Salvar.
Exibir informações de consulta usando o Log Analytics
No Log Analytics, no painel esquerdo, em Monitoramento, selecione Logs.
Feche a janela Consultas que se abre.
Na janela de consulta, você pode escrever a consulta a ser executada. Para localizar consultas com mais de 10 segundos em um servidor específico, usamos o seguinte código:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
Selecione o Intervalo de tempo e execute a consulta. Os resultados são exibidos na imagem a seguir:
Exibir insights de consulta usando pastas de trabalho
No portal do Azure, no painel esquerdo, em Monitoramento para sua instância do Servidor Flexível do Banco de Dados do Azure para MySQL, selecione Pastas de trabalho.
Selecione o modelo Query Performance Insight .
Na pasta de trabalho, você pode exibir as seguintes visualizações:
- Carga de consulta
- Total de conexões ativas
- Tendência de consulta lenta (>tempo de consulta de 10 segundos)
- Detalhes da consulta lenta
- Listar as 5 consultas mais longas
- Resumir consultas lentas por tempo de consulta mínimo, máximo, médio e desvio padrão
Nota
- Para exibir a utilização de recursos, você pode usar o modelo Visão geral.
- Você também pode editar esses modelos e personalizá-los de acordo com suas necessidades. Para obter mais informações, consulte Pastas de trabalho do Azure.
- Para uma visualização rápida, você também pode fixar as pastas de trabalho ou a consulta do Log Analytics no seu Painel. Para obter mais informações, consulte Criar um painel no portal do Azure.
No Query Performance Insight, duas métricas que podem ajudá-lo a encontrar possíveis gargalos são a duração e a contagem de execução. As consultas de longa duração têm o maior potencial para bloquear recursos por mais tempo, bloquear outros usuários e limitar a escalabilidade.
Em alguns casos, uma alta contagem de execução pode levar a mais viagens de ida e volta da rede. As viagens de ida e volta afetam o desempenho. Eles estão sujeitos à latência da rede e à latência do servidor downstream. Assim, a contagem de execuções pode ajudar a encontrar consultas executadas com frequência ("tagarelas"). Essas consultas são os melhores candidatos para otimização.