วิเคราะห์การดำเนินการค้นหาด้วย Query Explain

หน้านี้อธิบายวิธีดึงข้อมูลการดำเนินการค้นหาเมื่อคุณดำเนินการค้นหา

ใช้คำอธิบายการค้นหา

คุณสามารถใช้คำอธิบายการค้นหาเพื่อทำความเข้าใจวิธีดำเนินการกับการค้นหา ซึ่งจะให้รายละเอียดที่คุณใช้เพิ่มประสิทธิภาพการค้นหาได้

คุณใช้คำอธิบายการค้นหาผ่านคอนโซล Google Cloud ได้

คอนโซล

เรียกใช้คำค้นหาในตัวแก้ไขคำค้นหา แล้วเปิดแท็บคำอธิบาย

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล

    ไปที่ฐานข้อมูล

  2. เลือกฐานข้อมูล Cloud Firestore จากรายการฐานข้อมูล คอนโซล Google Cloud จะเปิด Firestore Explorer สำหรับฐานข้อมูลนั้น
  3. ป้อนคำค้นหาในตัวแก้ไขคำค้นหา แล้วคลิกเรียกใช้
  4. คลิกแท็บคำอธิบายเพื่อดูเอาต์พุตการวิเคราะห์การค้นหา

การวิเคราะห์

เอาต์พุตของคำอธิบายการค้นหามีองค์ประกอบหลัก 2 อย่าง ได้แก่ สถิติสรุปและแผนผังการดำเนินการ ลองดูตัวอย่างคำค้นหานี้

db.pipeline().collection('/users').sort(field("status").ascending()).limit(100)

สถิติสรุป

ส่วนบนของเอาต์พุตที่อธิบายจะมีสรุปสถิติการดำเนินการ ใช้สถิติเหล่านี้เพื่อพิจารณาว่าการค้นหามีเวลาในการตอบสนองหรือต้นทุนสูงหรือไม่ นอกจากนี้ ยังมีสถิติหน่วยความจำที่ช่วยให้คุณทราบว่าคำค้นหาของคุณใกล้ถึงขีดจำกัดหน่วยความจำมากน้อยเพียงใด

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

แผนผังการดำเนินการ

แผนผังการดำเนินการอธิบายการดำเนินการของคําค้นหาเป็นชุดของโหนด โหนดด้านล่าง (โหนดใบ) จะดึงข้อมูลจากเลเยอร์ที่เก็บข้อมูลซึ่งจะเคลื่อนที่ขึ้นไปตามโครงสร้างต้นไม้เพื่อสร้างการตอบกลับการค้นหา

ดูรายละเอียดเกี่ยวกับโหนดการดำเนินการแต่ละรายการได้ที่ข้อมูลอ้างอิงเกี่ยวกับการดำเนินการ

ดูรายละเอียดเกี่ยวกับวิธีใช้ข้อมูลนี้เพื่อเพิ่มประสิทธิภาพการค้นหาได้ที่เพิ่มประสิทธิภาพการดำเนินการค้นหา

ตัวอย่างแผนการดำเนินการมีดังนี้

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

ขั้นตอนถัดไป