Analisar a execução de consultas com o Query Explain
Esta página descreve 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.
É possível usar a explicação de consultas no console do Google Cloud .
Console
Execute uma consulta no Editor de consultas e abra a guia Explicação:
-
No console do Google Cloud , acesse a página Bancos de dados.
- Na lista, selecione um banco de dados do Firestore. O console Google Cloud abre o Firestore Explorer 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.pipeline().collection('/users').sort(field("status").ascending()).limit(100)
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. Além disso, contém estatísticas de memória que informam se a consulta está próxima dos limites de memória.
Execution:
results returned: 2
request peak memory usage: 20.25 KiB (20,736 B)
data bytes read: 148 B
entity row scanned: 2
Billing:
read units: 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:
Tree:
• Compute
| $out_1: map_set($record_1, "__name__", $__name___1, "__key__", unset)
| is query result: true
|
| Execution:
| records returned: 2
| latency: 5.96 ms (local <1 ms)
|
└── • Compute
| $__name___1: map_get($record_1, "__key__")
|
| Execution:
| records returned: 2
| latency: 5.88 ms (local <1 ms)
|
└── • MajorSort
| fields: [$v_1 ASC]
| output: [$record_1]
| limit: 100
|
| Execution:
| records returned: 2
| latency: 5.86 ms (local <1 ms)
| peak memory usage: 20.25 KiB (20,736 B)
|
└── • Compute
| $v_1: map_get($record_1, "status")
|
| Execution:
| records returned: 2
| latency: 5.23 ms (local <1 ms)
|
└── • TableScan
source: /users
order: UNDEFINED
properties: *
row range: (-∞..+∞)
output record: $record_1
variables: [$record_1]
Execution:
records returned: 2
latency: 4.68 ms
records scanned: 2
data bytes read: 148 B
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.