Menganalisis eksekusi kueri dengan Query Explain

Halaman ini menjelaskan cara mengambil informasi eksekusi kueri saat Anda mengeksekusi kueri.

Menggunakan Query Explain

Anda dapat menggunakan Query Explain untuk memahami cara kueri dijalankan. Halaman ini memberikan detail yang dapat Anda gunakan untuk mengoptimalkan queriegoogledata/devsite/site-cloud/en/firestore/mongodb-compatibility/quotas.mds. Dukungan untuk Penjelasan Kueri saat ini terbatas pada konsol Google Cloud .

Untuk menggunakan Query Explain, jalankan kueri di Editor Kueri dan buka tab Explanation:

Konsol
  1. Di Google Cloud console, buka halaman Databases.

    Buka Databases

  2. Dari daftar database, pilih database Firestore dengan kompatibilitas MongoDB. Konsol Google Cloud akan membuka Firestore Explorer untuk database tersebut.
  3. Masukkan kueri di editor kueri, lalu klik Run.
  4. Klik tab Explanation untuk melihat output analisis kueri.

    Tab Query Explain di konsol

Analisis

Output Penjelasan Kueri berisi dua komponen utama, yaitu Statistik Ringkasan dan Hierarki Eksekusi. Pertimbangkan kueri ini sebagai contoh:

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

Statistik Ringkasan

Bagian atas output yang dijelaskan berisi ringkasan statistik eksekusi. Gunakan statistik ini untuk menentukan apakah kueri memiliki latensi atau biaya yang tinggi. Laporan ini juga berisi statistik memori yang memberi tahu Anda seberapa dekat kueri Anda dengan batas memori.

Billing Metrics:
read units: 1

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

Hierarki Eksekusi

Hierarki eksekusi menjelaskan eksekusi kueri sebagai serangkaian node. Node bawah (node daun) mengambil data dari lapisan penyimpanan yang melintasi hierarki ke atas untuk menghasilkan respons kueri.

Untuk mengetahui detail tentang setiap node eksekusi, lihat Referensi eksekusi.

Untuk mengetahui detail tentang cara menggunakan informasi ini untuk mengoptimalkan kueri, lihat Mengoptimalkan eksekusi kueri.

Berikut adalah contoh hierarki eksekusi:

• 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

Langkah berikutnya