Analizza l'esecuzione delle query con Query Explain
Questa pagina descrive come recuperare le informazioni sull'esecuzione delle query quando ne esegui una.Utilizzare la spiegazione della query
Puoi utilizzare la spiegazione delle query per capire come vengono eseguite le query. Fornisce dettagli che puoi utilizzare per ottimizzare le query googledata/devsite/site-cloud/it/firestore/mongodb-compatibility/quotas.mds. Il supporto di Spiega query è attualmente limitato alla Google Cloud console.
Per utilizzare Spiega query, esegui una query nell'editor di query e apri la scheda Spiegazione:
Console
-
Nella Google Cloud console, vai alla pagina Database.
- Dall'elenco dei database, seleziona un database Firestore con compatibilità MongoDB. La Google Cloud console apre Firestore Explorer per il database in questione.
- Inserisci una query nell'editor delle query e fai clic su Esegui.
-
Fai clic sulla scheda Spiegazione per visualizzare l'output dell'analisi delle query.
Analisi
L'output di Query Explain contiene due componenti principali: Statistiche di riepilogo e Albero di esecuzione. Prendi in considerazione questa query come esempio:
db.order.aggregate(
[
{ "$match": { "user_id": 1234 } },
{ "$sort": { "date_placed": 1 } }
]
)
Statistiche di riepilogo
La parte superiore dell'output spiegato contiene un riepilogo delle statistiche di esecuzione. Utilizza queste statistiche per determinare se una query ha un costo o una latenza elevati. Contiene inoltre statistiche sulla memoria che ti consentono di sapere quanto è vicina la tua query ai limiti di memoria.
Billing Metrics:
read units: 1
Execution Metrics:
request peak memory usage: 4.00 KiB (4,096 B)
results returned: 1
Albero di esecuzione
L'albero di esecuzione descrive l'esecuzione della query come una serie di nodi. I nodi inferiori (nodi foglia) recuperano i dati dal livello di archiviazione che attraversa la struttura ad albero per generare una risposta alla query.
Per informazioni dettagliate su ciascun nodo di esecuzione, consulta le Informazioni di riferimento sull'esecuzione.
Per informazioni dettagliate su come utilizzare queste informazioni per ottimizzare le query, consulta Ottimizzare l'esecuzione delle query.
Di seguito è riportato un esempio di albero di esecuzione:
• 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
Passaggi successivi
- Per informazioni sui nodi dell'albero di esecuzione, consulta la documentazione di riferimento sull'esecuzione delle query.
- Per scoprire come ottimizzare le query, consulta Ottimizzare l'esecuzione delle query.