Abfrageausführung mit „Abfrage erläutern“ analysieren

Auf dieser Seite wird beschrieben, wie Sie Informationen zur Abfrageausführung abrufen, wenn Sie eine Abfrage ausführen.

Abfrageerläuterung verwenden

Mit der Abfrageerläuterung können Sie nachvollziehen, wie Ihre Abfragen ausgeführt werden. Hier finden Sie Details, mit denen Sie Ihre Abfrage optimieren können. Die Funktion „Abfrageerläuterung“ wird derzeit nur in der Google Cloud Console unterstützt.

Wenn Sie „Abfrageerläuterung“ verwenden möchten, führen Sie eine Abfrage im Abfrageeditor aus und öffnen Sie den Tab Erläuterung:

Console
  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie in der Liste der Datenbanken eine Firestore-Datenbank mit MongoDB-Kompatibilität aus. In der Google Cloud Console wird der Firestore Explorer für diese Datenbank geöffnet.
  3. Geben Sie eine Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen.
  4. Klicken Sie auf den Tab Erläuterung, um die Ausgabe der Abfrageanalyse aufzurufen.

    Tab „Abfrageerläuterung“ in der Console

Analyse

Die Ausgabe von „Abfrageerläuterung“ enthält zwei Hauptkomponenten: die Zusammenfassungsstatistiken und den Ausführungsbaum. Betrachten Sie die folgende Abfrage als Beispiel:

db.order.aggregate(
 [
   { "$match": { "user_id": 1234 } },
   { "$sort": { "date_placed": 1 } }
 ]
)

Zusammenfassung der Statistiken

Oben in der Ausgabe finden Sie eine Zusammenfassung der Ausführungsstatistiken. Anhand dieser Statistiken können Sie feststellen, ob eine Abfrage eine hohe Latenz oder hohe Kosten verursacht. Außerdem enthält er Speicherstatistiken, anhand derer Sie sehen können, wie nahe Ihre Abfrage an den Speicherlimits ist.

Billing Metrics:
read units: 1

Execution Metrics:
request peak memory usage: 4.00 KiB (4,096 B)
results returned: 1

Ausführungsstruktur

Der Ausführungsbaum beschreibt die Abfrageausführung als eine Reihe von Knoten. Die untersten Knoten (Blattknoten) rufen Daten aus der Speicherschicht ab, die den Baum nach oben durchlaufen, um eine Abfrageantwort zu generieren.

Weitere Informationen zu den einzelnen Ausführungsknoten finden Sie in der Referenz zur Ausführung.

Weitere Informationen dazu, wie Sie diese Informationen zur Optimierung Ihrer Abfragen verwenden können, finden Sie unter Abfrageausführung optimieren.

Im Folgenden finden Sie ein Beispiel für einen Ausführungsbaum:

• 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

Nächste Schritte