شرح Postgres التكلفة

Shrh Postgres Altklft



Postgres هو نظام قاعدة بيانات علائقية قوي وواسع الاستخدام ومفتوح المصدر يتمتع بسمعة قوية بسبب متانته ووظائفه وأدائه.

واحدة من الأدوات التي تجعل Postgres قوية في الغالب في الأداء هو أمرها EXPLAIN الذي يوفر تفاصيل حول خطة تنفيذ استعلام SQL.

ما هو أمر الشرح؟

يعرض الأمر EXPLAIN خطة التنفيذ التي ينشئها مخطط PostgreSQL لعبارة SQL معينة.







يتضمن هذا معلومات حول التكاليف المقدرة لتنفيذ كل خطوة استعلام. من خلال فحص هذه التكاليف ، يمكننا فهم سبب بطء عمل الاستعلام وكيفية تحسينه.



PostgreSQL شرح التكلفة

نستخدم الأمر EXPLAIN بشكل أساسي لجلب المعلومات حول استعلام معين. يقوم الأمر بإخراج بعض المعلومات حول الاستعلام.



خذ على سبيل المثال الاستعلام الذي يظهر في ما يلي:





حدد العنوان ، الاسم
من فيلم f
الانضمام إلى film_category fc ON f.film_id = fc.film_id
الانضمام إلى الفئة c ON fc.category_id = c.category_id؛

إذا قمنا بتشغيل أمر الشرح على الصلة البسيطة السابقة:

شرح تحديد f.title، c.name
من فيلم f
الانضمام إلى film_category fc ON f.film_id = fc.film_id
الانضمام إلى الفئة c ON fc.category_id = c.category_id؛

يجب أن نحصل على المخرجات كما هو موضح في ما يلي:



قد تلاحظ أنه لكل خطوة استعلام ، تقوم PostgreSQL بإرجاع التكلفة المقدرة لهذا الاستعلام.

  1. startup_cost - يعرض التكلفة المقدرة لتهيئة العملية قبل أن تبدأ في إخراج الصفوف.
  2. total_cost - التكلفة الإجمالية لاسترداد كل الصفوف.
  3. الصفوف - تحدد العدد المقدر للصفوف التي يتم إرجاعها بواسطة الاستعلام.
  4. العرض - يحدد هذا متوسط ​​عدد البايت لجميع الصفوف التي تم إرجاعها بواسطة العملية.

تتم الإشارة إلى تكاليف الاستعلام في PostgreSQL بوحدات عشوائية يتم تحديدها بواسطة معلمات التكلفة التي تم تعيينها في تكوين الخادم.

مفتاح هذه المعلمات هو seq_page_cost الذي يحدد تكلفة جلب صفحة القرص غير الموجودة في ذاكرة التخزين المؤقت.

إذا كنت تستخدم pgAdmin ، فيمكنك استخدام ميزة 'شرح التحليل' للحصول على رسم تخطيطي أكثر قابلية للقراءة وعرضًا جيدًا لأمر الشرح. على سبيل المثال:

يمكنك بعد ذلك النقر فوق كل خطوة لعرض الإحصائيات والتكاليف المقدرة.

تحسين الاستعلامات على أساس التكلفة

عند تحسين استعلاماتك ، من الضروري أن تفهم أن التكلفة المنخفضة تعني عادةً تنفيذًا أسرع. لذلك ، يمكنك تعديل استعلاماتك بتكلفة أقل.
فيما يلي بعض العوامل التي يجب مراعاتها:

استخدم فهارس الجدول - تقلل الفهارس بشكل كبير من تكلفة الاستعلامات القائمة على البحث من خلال الحفاظ على بنية البيانات التي تتيح البحث بشكل أسرع.

استخدم الوظائف والعوامل بحكمة - لا يكون تقدير التكلفة للوظائف والمشغلين دقيقًا دائمًا ، حيث يمكن أن تعتمد التكلفة الفعلية بشكل كبير على البيانات المحددة. ومن ثم ، حصر استخدام الوظائف والمعاملات المعقدة إلى الحد الأدنى.

خاتمة

استكشفنا مفهوم التكاليف في أمر PostgreSQL ANALYZE. ناقشنا ما يعنيه إخراج الأمر وكيفية استخدام ناتج التكلفة لتحليل الطريقة الأكثر فاعلية لتشغيل استعلام معين.