Corrigir problemas de query
Nesta página
Query Targeting
os alertas geralmente indicam queries ineficientes.
Condições de alerta
Você pode configurar as seguintes condições de alerta na página de configurações de alerta no nível de projeto para acionar alertas.
Query Targeting: Scanned Objects / Returned
Os alertas são acionados quando o número médio de documentos digitalizados em relação ao número médio de documentos retornados em todo o servidor em todas as operações durante um período de amostragem excede um limite definido. O alerta padrão usa um limite de 1000:1.
Idealmente, a proporção de documentos digitalizados para documentos devolvidos deve ser próxima de 1. Uma proporção alta impacta negativamente o desempenho da query.
Query Targeting: Scanned / Returned
ocorre se o número de chaves de índice examinadas para atender a uma query em relação ao número real de documentos retornados atender ou exceder um limite definido pelo usuário. Este alerta não está habilitado por padrão.
Exemplo
A seguinte entrada de registro de mongod mostra estatísticas geradas a partir de uma query ineficiente:
<Timestamp> COMMAND <query> planSummary: COLLSCAN keysExamined:0 docsExamined: 10000 cursorExhausted:1 numYields:234 nreturned:4 protocol:op_query 358ms
Esta query digitalizou 10.000 documentos e devolveu apenas 4 para uma proporção de 2500, o que é altamente ineficiente. Nenhuma chave de índice foi examinada, então o MongoDB digitalizou todos os documentos da coleção, conhecida como uma verificação de collection .
Gatilhos comuns
O alerta de direcionamento de query geralmente ocorre quando não há índice para suportar uma query ou queries ou quando um índice existente suporta apenas parcialmente uma query ou queries.
Os cursores de fluxos de alterações que o processo do Atlas Search (mongot
) usa para manter os índices do Atlas Search atualizados podem contribuir para a taxa de direcionamento de query e acionar alertas de direcionamento de query se a taxa for alta.
Corrigir o problema imediato
Adicione um ou mais índices para melhor atender às queries ineficientes.
O Performance Advisor fornece a maneira mais fácil e rápida de criar um índice. O Performance Advisor monitora as queries que MongoDB considera lentas e recomenda índices para melhorar o desempenho. O Atlas ajusta dinamicamente seu limite de consulta lenta com base no tempo de execução das operações em todo o cluster.
Clique em Create Index em uma query lenta para obter instruções de como criar o índice recomendado.
Observação
É possível receber um alerta de Direcionamento de Query para uma query ineficiente sem receber sugestões de índice do Performance Advisor se a query exceder o limite de query lenta e a proporção de documentos digitalizados para retornados for maior do que o limite especificado no alerta.
Além disso, você pode usar os seguintes recursos para determinar qual query gerou o alerta:
O Real-Time Performance Panel monitora e exibe o tráfego de rede atual e as operações de banco de dados em máquinas que hospedam o MongoDB em seus Atlas clusters.
Os registros do MongoDB mantêm uma conta da atividade, incluindo queries, para cada instância
mongod
em seus Atlas clusters.O comando cursor.explain() para o
mongosh
fornece detalhes de desempenho para todas as queries.O Namespace Insights monitora a latência de consulta no nível da coleção.
O Analisador de query Atlas registra as operações que o Atlas considera lentas quando comparadas ao tempo médio de execução de todas as operações em seu cluster.
Implemente uma solução a longo prazo
Consulte o seguinte para obter mais informações sobre o desempenho da query:
Monitore seu progresso
O Atlas oferece os seguintes métodos para visualizar o direcionamento da query:
Métricas de Direcionamento de Query, que destacam altas proporções de objetos verificados em relação aos objetos retornados.
Namespace Insights, que monitora a latência de consulta no nível da coleção.
O Analisador de Query, que descreve queries específicas ineficientes executadas no cluster.
Métricas de direcionamento de consulta
Você pode visualizar métricas históricas para ajudá-lo a visualizar o desempenho da query do seu cluster. Para visualizar Query Targeting métricas na IU do Atlas:
No Atlas, vá Clusters para a página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
O gráfico Query Targeting exibe as seguintes métricas para queries executadas no servidor:
Métrica | Descrição |
---|---|
Scanned Objects / Returned | Indica o número médio de documentos examinados em relação ao número médio de documentos devolvidos. |
Scanned / Returned | Indica o número de chaves de índice examinadas para atender a uma query relativa ao número real de documentos devolvidos. |
Os cursores de fluxos de alterações que o processo do Atlas Search (mongot
) usa para manter os índices do Atlas Search atualizados podem contribuir para a taxa de direcionamento de query e acionar alertas de direcionamento de query se a taxa for alta.
Se uma dessas métricas exceder o limite definido pelo usuário, o Atlas gerará o alerta Query Targeting: Scanned Objects / Returned
ou Query Targeting: Scanned / Returned
correspondente.
Observação
Você também pode visualizar Query Targeting proporções de operações em tempo real usando o Real-Time Performance Panel.
Insights de namespace
O Namespace Insights monitora a latência de consulta no nível da coleção. Você pode visualizar métricas e estatísticas de latência de consultas para determinados hosts e tipos de operação. Gerencie namespaces fixos e escolha até cinco namespaces para mostrar nos gráficos de latência de consulta correspondentes.
Para acessar o Namespace Insights:
No Atlas, vá Clusters para a página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Perfilador de consulta
O Analisador de query contém várias métricas que você pode usar para identificar queries ineficientes específicas. Você pode visualizar até as últimas 24 horas de operações de query. O Analisador de query pode mostrar o Examined : Returned Ratio (chaves de índice examinadas para documentos retornados) das queries registradas, o que pode ajudá-lo a identificar as queries que acionaram um alerta Query Targeting: Scanned / Returned
. O gráfico mostra o número de chaves de índice examinadas para atender a uma query em relação ao número real de documentos retornados.
Observação
A proporção de alerta padrão Query Targeting: Scanned Objects / Returned
é ligeiramente diferente. A proporção do número médio de documentos digitalizados para o número médio de documentos retornados durante um período de amostragem aciona esse alerta.
O Atlas pode não registrar as operações individuais que contribuem para as taxas de Query Targeting devido aos limites definidos automaticamente. No entanto, você ainda pode usar o Query Profiler e as métricas Query Targeting para analisar e otimizar o desempenho da consulta.
Para acessar o Analisador de query:
No Atlas, vá Clusters para a página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.