Analisar a execução de consultas com o Query Explain
Nesta página, descrevemos como recuperar informações de execução de consultas ao executar uma consulta.Usar o Query Explain
Use o Query Explain para entender como suas consultas estão sendo executadas. Isso fornece detalhes que podem ser usados para otimizar suas consultas. No momento, o suporte para "Explicar consulta" está limitado ao Google Cloud console.
Para usar o Query Explain, execute uma consulta no editor de consultas e abra a guia Explicação:
Console
-
No console do Google Cloud , acesse a página Bancos de dados.
- Na lista de bancos de dados, selecione um banco de dados do Firestore com compatibilidade com o MongoDB. O console Google Cloud abre o Explorador do Firestore para esse banco de dados.
- Insira uma consulta no editor e clique em Executar.
-
Clique na guia Explicação para conferir a saída da análise de consulta.
Análise
A saída do Query Explain contém dois componentes principais: as estatísticas de resumo e a árvore de execução. Considere esta consulta como exemplo:
db.order.aggregate(
[
{ "$match": { "user_id": 1234 } },
{ "$sort": { "date_placed": 1 } }
]
)
Estatísticas de resumo
A parte de cima da saída explicada contém um resumo das estatísticas de execução. Use essas estatísticas para determinar se uma consulta tem alta latência ou custo. Ele também contém estatísticas de memória que informam a proximidade da consulta aos limites de memória.
Billing Metrics:
read units: 1
Execution Metrics:
request peak memory usage: 4.00 KiB (4,096 B)
results returned: 1
Árvore de execução
A árvore de execução descreve a execução da consulta como uma série de nós. Os nós inferiores (nós folha) recuperam dados da camada de armazenamento, que percorre a árvore para gerar uma resposta de consulta.
Para detalhes sobre cada nó de execução, consulte a Referência de execução.
Para saber como usar essas informações para otimizar suas consultas, consulte Otimizar a execução de consultas.
Confira um exemplo de árvore de execução:
• Drop
| fields to drop: [__$3__]
| records returned: 0
|
└── • MajorSort
| fields: [__$3__ ASC]
| peak memory usage: 4.00 KiB (4,096 B)
| records returned: 0
|
└── • Extend
| expressions: [date_placed AS __$3__]
| records returned: 0
|
└── • Drop
| fields to drop: [__key__]
| records returned: 0
|
└── • Extend
| expressions: [_id(__key__) AS __id__]
| records returned: 0
|
└── • Filter
| expression: $eq(user, 1,234)
| records returned: 0
|
└── • TableScan
order: UNDEFINED
properties: * - { __create_time__, __update_time__ }
records returned: 0
records scanned: 0
source: (default)#/**/collection
A seguir
- Para saber mais sobre os nós da árvore de execução, consulte a Referência de execução de consultas.
- Para saber como otimizar suas consultas, consulte Otimizar a execução de consultas.