Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Avaliar o desempenho das operações atuais

Nesta página

  • Use o Profiler do Banco de Dados para Avaliar Operações Contra o Banco de Dados
  • Use db.currentOp() para avaliar mongod operações
  • Use explain para avaliar o desempenho da query

As seções a seguir descrevem técnicas para avaliar o desempenho operacional.

O MongoDB fornece um criador de perfil de banco de dados que mostra as características de desempenho de cada operação em relação ao banco de dados. Use o criador de perfil para localizar quaisquer queries ou operações de gravação que estejam lentas. Você pode usar essas informações, por exemplo, para determinar quais índices criar.

A partir do MongoDB 4.2, as entradas do criador de perfil e as mensagens de registro de diagnóstico (ou seja, mensagens de registro mongod/mongos) para operações de leitura/gravação incluem:

  • queryHash para ajudar a identificar queries lentas com a mesma forma de query.

  • planCacheKey para fornecer mais informações sobre o cache do plano de consulta para queries lentas.

A partir da versão 4.2, membros secundários de um conjunto de réplicas podem extrapolar o limite de tempo para registrar entradas de oplog a serem aplicadas. Essas mensagens de atraso no oplog:

  • São registradas para os secundários no diagnostic log.

  • São registradas sob o componente REPL com o texto applied op: <oplog entry> took <num>ms.

  • Não dependem dos níveis de registro (seja no nível do sistema ou do componente)

  • Não dependem do nível de perfil.

  • São afetados por slowOpSampleRate.

O perfilador não captura entradas de oplog lentas.

Para obter mais informações, consulte Profiler do Banco de Dados.

O método db.currentOp() relata as operações atuais em execução em uma instância mongod.

Os métodos cursor.explain() e db.collection.explain() geram informações sobre a execução de uma query, como o índice que o MongoDB selecionou para preencher as estatísticas de query e execução. Você pode executar os métodos nos modos queryPlanner, executionStats ou allPlansExecution para controlar a quantidade de informações geradas.

Exemplo

Para usar cursor.explain() em uma query de documentos que correspondam à expressão { a: 1 }, na collection chamada records, use uma operação semelhante à seguinte em mongosh:

db.records.find( { a: 1 } ).explain("executionStats")

A partir do MongoDB 4.2, a saída explicativa inclui:

Para mais informações, consulte Explicar Resultados, cursor.explain(), db.collection.explain() e Analisar Desempenho da Query.

← Otimização de Consulta