تحليل تنفيذ طلب البحث باستخدام Query Explain

توضّح هذه الصفحة كيفية استرداد معلومات تنفيذ طلب البحث عند تنفيذه.

استخدام ميزة "شرح طلب البحث"

يمكنك استخدام ميزة "شرح طلب البحث" لفهم كيفية تنفيذ طلبات البحث. وتوفّر هذه الميزة تفاصيل يمكنك استخدامها لتحسين طلبات البحث.

يمكنك استخدام ميزة "شرح طلب البحث" من خلال Google Cloud Console.

وحدة التحكم

نفِّذ طلب بحث في "محرِّر طلبات البحث" وافتح علامة التبويب الشرح:

  1. في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. من قائمة قواعد البيانات، اختَر قاعدة بيانات Cloud Firestore. يفتح Google Cloud Console مستكشف Firestore لقاعدة البيانات هذه.
  3. أدخِل طلب بحث في محرِّر طلبات البحث وانقر على تنفيذ.
  4. انقر على علامة التبويب الشرح لعرض ناتج تحليل طلب البحث.

التحليل

يحتوي ناتج ميزة "شرح طلب البحث" على مكوّنَين رئيسيَّين: الإحصاءات الملخّصة وشجرة التنفيذ. على سبيل المثال، ضع في اعتبارك طلب البحث التالي:

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

الخطوات التالية