انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-014-L05

عرض عملي: معاملة خاملة تعطّل vacuum

  • الدرس 5 من 5
  • Mid-level
في هذا الدرس 3 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

create bloat with an idle transaction and fix it.

تفاصيل المخطط المبدئي

خطوة بخطوة

  1. Create a hot table stock_log and a loop that updates rows continuously; show baseline size and n_dead_tup.
  2. In another session run BEGIN; SELECT count(*) FROM stock_log; and leave it open.
  3. Run VACUUM (VERBOSE) stock_log; it reports dead rows "not yet removable".
  4. Planned mistake: disable autovacuum to "fix" growth; bloat gets worse. Fix: re-enable it.
  5. Terminate the idle session (or set idle_in_transaction_session_timeout) and vacuum again; dead tuples drop.
  6. Note table size stays large (reusable space, not returned to the OS).

Prepares MID-014-LAB1.

اختبر فهمك

Which message in VACUUM VERBOSE reveals the culprit?

أظهر الإجابة

Dead row versions "not yet removable" because of an old transaction.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.