使用「查詢說明」分析查詢執行作業

本頁說明如何擷取執行查詢時的查詢執行資訊。

使用查詢說明

您可以使用「查詢說明」瞭解查詢的執行方式。 這項資訊可協助您最佳化查詢。 目前只有 Google Cloud 控制台支援查詢說明。

如要使用查詢說明,請在查詢編輯器中執行查詢,然後開啟「說明」分頁:

控制台
  1. 前往 Google Cloud 控制台的「Databases」頁面。

    前往「資料庫」

  2. 從資料庫清單中,選取與 MongoDB 相容的 Firestore 資料庫。 Google Cloud 控制台會開啟該資料庫的「Firestore Explorer」
  3. 在查詢編輯器中輸入查詢,然後點選「Run」(執行)
  4. 按一下「說明」分頁標籤,即可查看查詢分析輸出內容。

    主控台中的「查詢說明」分頁

分析

查詢說明的輸出內容包含兩個主要元件:摘要統計資料和執行樹狀結構。 以這個查詢為例:

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

摘要統計資料

說明輸出的頂端會顯示執行統計資料摘要。 您可以根據這些統計資料,判斷查詢是否延遲時間過長或費用過高。此外,這份報表也包含記憶體統計資料,可讓您瞭解查詢作業是否即將達到記憶體限制

Billing Metrics:
read units: 1

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

執行樹狀結構

執行樹狀結構會將查詢執行作業描述為一系列節點。底部的節點 (葉節點) 會從儲存層擷取資料,並沿著樹狀結構向上遍歷,以產生查詢回應。

如要進一步瞭解每個執行節點,請參閱「執行參考資料」。

如要瞭解如何運用這項資訊最佳化查詢,請參閱「最佳化查詢執行作業」。

以下是執行樹狀結構的範例:

• 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

後續步驟