it-swarm.asia

ما معنى n_live_tup و n_dead_tup في pg_stat_user_tables

ما معنى n_live_tup و n_dead_tup في pg_stat_user_tables أو pgstattuple؟

20
Majid Azimi

هذان العمودان نتيجة

SELECT pg_stat_get_live_tuples(c.oid) AS n_live_tup
     , pg_stat_get_dead_tuples(c.oid) AS n_dead_tup
FROM   pg_class c;

تمثيل عدد الصفوف الحية والميتة (الصفوف) في الجدول.
أوجد تلك الوظائف في الدليل .

الصفوف الميتة هي صفوف محذوفة سيتم إعادة استخدامها لاحقًا للصفوف الجديدة من INSERTs أو UPDATEs (المساحة وليس البيانات). يمكن أن تكون بعض الصفوف الميتة (أو المساحة الخالية المحجوزة) مفيدة بشكل خاص للتحديثات الساخنة (Heap-Only Tuples) التي يمكنها إعادة استخدام المساحة في صفحة البيانات نفسها بكفاءة. المزيد عن H.O.T .:

أو يمكن إزالة الصفوف الميتة بواسطة VACUUM FULL (أو عادي VACUUM إذا كان محظوظًا) أو عمليات مماثلة على الطاولة ، وبالتالي تقليص الجدول الفعلي وفقًا لذلك.

عندما يتم حذف صف أو تحديثه ، يصبح إصدار الصف القديم غير مرئي لجميع المعاملات الأخرى التي تبدأ بعد تنفيذ المعاملة. انتهى الصف تمامًا بمجرد عدم وجود معاملات قديمة غير ملتزمة. يعد ذلك ضروريًا طراز MVCC من PostgreSQL للتعامل مع التزامن.

هذه مجرد إحصائيات . تحتاج إلى تمكين جمع الإحصائيات في postgresql.conf إذا كنت تريد تحديثها تلقائيًا. track_counts يجب أن يتم تشغيله افتراضيًا ، على الرغم من ذلك. ضع في اعتبارك أن الإحصائيات لا يتم تحديثها على الفور. اقرأ المزيد عن ذلك في الدليل .

29
Erwin Brandstetter