كل قاعدة بيانات Odoo تكبر مع الوقت. هذا أمر طبيعي، ولا يشكل مشكلة في معظم عمر النظام. المشكلة أن النمو لا يتوزع بالتساوي على الجداول، وأن أسرع الأجزاء نمواً هي عادة تلك التي لا ينظر إليها أحد. وحين يصبح الحجم ملحوظاً فإنه نادراً ما يصل على هيئة شكوى من الحجم، بل يصل على هيئة نسخة احتياطية تستغرق ضعف وقتها السابق، ونسخة اختبارية لم يعد الانتظار من أجلها مجدياً، ونافذة ترقية لم تعد تتسع داخل عطلة نهاية الأسبوع.
هذه نظرة عملية على ما ينمو فعلاً داخل قاعدة بيانات Odoo، ولماذا يؤثر تشغيلياً قبل أن يؤثر على السرعة، وما الذي يمكن تقليصه دون الإضرار بسجلاتك.
ما الذي ينمو فعلاً
في معظم الأنظمة، أربعة عناصر تفسر الجزء الأكبر من النمو.
- المرفقات وملفات النظام. فواتير ممسوحة ضوئياً، صور تسليم، عقود بصيغة PDF، صور منتجات، تقارير مُولَّدة. هذه لا تعيش في جدول تلاحظه بسهولة، وفي نظام يرفق فيه كل مستخدم مستنداته بحرية تصبح غالباً أكبر مكوّن منفرد. والمرفقات التي يولدها النظام نفسه، مثل نسخ التقارير المحفوظة، تتراكم بهدوء فوق ما يرفعه الموظفون.
- الرسائل وتتبع الحقول. كل رسالة في الـ chatter، وكل ملاحظة مسجلة، وكل قيد تتبع لتغيّر حقل، وكل متابع، هو سطر في قاعدة البيانات. ووحدة كثيفة الإجراءات مع تتبع مفعّل على عشرة حقول قد تولّد لكل مستند سطوراً أكثر مما يحويه المستند نفسه من بنود.
- البنود الحركية. القيود المحاسبية وحركات المخزون وسجلاتها الفرعية تنمو مع حجم العمل الحقيقي. هذا هو النمو الذي تريده، وهو أيضاً النمو الذي يجب ألا تحذفه، لأنه سجلك القانوني والمالي.
- الرواسب الخلفية. جداول السجلات، وسجلات حمولات التكامل، وتاريخ المهام في الطابور، وكل ما تكتبه الأتمتة في كل دورة تشغيل. إجراء مجدول واحد مضبوط بشكل خاطئ يكتب سجلاً كل 5 دقائق ينتج أكثر من 100000 سطر في السنة دون أي قيمة تشغيلية.
لماذا يسبق أثر الحجم أثر السرعة
تتوقع الفرق عادة أن يظهر حجم قاعدة البيانات على هيئة شاشة بطيئة. لكنه يظهر أولاً في التشغيل.
تستغرق النسخ الاحتياطية وقتاً أطول وتكلف أكثر في التخزين. وتتحول الاستعادة إلى قرار حقيقي بدل أن تكون إجراءً روتينياً، لأن استعادة تستغرق أربع ساعات تغيّر طريقة تفكيرك في التعافي أصلاً. ويتوقف نسخ بيئة الإنتاج إلى بيئة staging عن كونه خطوة عابرة قبل كل تغيير، وهو ما يقوّض تدريجياً انضباط اختبار التغييرات خارج النظام المباشر. وتطول ترقيات الإصدارات، لأن عملية الترقية مضطرة للمرور على كل ما في قاعدة البيانات، بما في ذلك السطور التي لا تحمل أي قيمة للعمل. كما تجعل الجداول الضخمة بعض التقارير وشاشات القوائم أثقل حتى دون أي تغيير في الكود.
مشكلات السرعة تأتي لاحقاً بالفعل، لكنك تكون قد دفعت ضريبة تشغيلية لشهور قبل أن تصل.
ما الذي تقيسه
هناك رقمان يستحقان المعرفة ولا يتابعهما أحد تقريباً: حجم ملفات النظام مقابل حجم قاعدة البيانات، وأكبر 5 جداول لديك من حيث عدد السطور. سجّل الاثنين كل ربع سنة واحتفظ بالتاريخ. قراءة واحدة لا تخبرك بشيء مفيد، بينما 3 قراءات على مدى سنة تخبرك بمعدل النمو، ومعدل النمو هو ما يتيح لك التخطيط لتوسعة أو لعملية تنظيف قبل أن تصبح عاجلة.
وإذا كان جدول واحد ينمو أسرع بكثير من حجم معاملاتك، فتلك هي الإشارة. النمو التجاري الحقيقي متناسب، أما الجدول الذي ينمو خارج التناسب فسببه عادة أتمتة أو إعداد تتبع، لا نشاط شركتك.
ما الذي يمكن تقليصه بأمان
المكاسب الآمنة تقع دائماً تقريباً خارج السجلات المحاسبية والمخزنية.
- أوقف تتبع الحقول التي لا يقرأها أحد. التتبع مفيد على حقول الاعتماد وتغيّرات الحالة، أما على حقل وصف نصي فهو ضجيج تدفع ثمن تخزينه إلى الأبد.
- ضع سياسة احتفاظ لجداول السجلات والتكامل، ثم نفّذها بإجراء تنظيف مجدول لا بعملية يدوية تحدث مرة واحدة ثم تُنسى.
- توقف عن توليد وتخزين تقارير PDF لا يفتحها أحد مرة ثانية. إعادة توليد التقرير عند الطلب أرخص عادة من الاحتفاظ بكل نسخة.
- راجع أي الإجراءات المجدولة يكتب سجلات، وبأي وتيرة. هذه أعلى بنود القائمة عائداً وأكثرها إهمالاً.
ما الذي يجب ألا تفعله
لا تحذف القيود المحاسبية ولا حركات المخزون ولا أي سجل يخضع لمتطلب احتفاظ قانوني، ولا تشغّل عمليات حذف يدوية بـ SQL على قاعدة بيانات Odoo لاستعادة مساحة. فطبقة الـ ORM في Odoo تدير علاقات وحقولاً محسوبة وقيوداً سيتجاهلها الـ SQL الخام بسهولة، والضرر الناتج عن حذف خاطئ يظهر عادة بعد أسابيع في تقرير لم يعد متوازناً. وإذا تعذر التعبير عن عملية التنظيف من داخل Odoo نفسه، فهي تحتاج سكربت ترحيل سليماً ونقطة استعادة مختبرة، لا استعلاماً سريعاً.
والأرشفة ليست حذفاً، وهي غالباً الجواب الصحيح. السجل المؤرشف ما زال موجوداً وما زال يظهر في التقارير بشكل سليم، لكنه يتوقف عن الظهور في الشاشات الافتراضية.
أين يقع دور الاستضافة
الاستضافة المُدارة لا تمنع قاعدة البيانات من النمو، ولن يخبرك مزود صادق بغير ذلك. ما تفعله هو جعل النمو قابلاً للاحتمال: نسخ احتياطية آلية، واستعادة إلى نقطة زمنية محددة، ومراقبة، وبيئات اختبار يمكن إنشاؤها دون أن تتحول إلى مشروع قائم بذاته. تقدّم Plemo استضافة Odoo مُدارة على هذا النموذج، فيصبح نسخ بيئة الإنتاج لاختبار عملية تنظيف خطوة روتينية بدل أن يكون سبباً لتأجيلها.
أما الجانب الإعدادي، أي تحديد ما يُتتبَّع وما يُحتفظ به وما ينبغي أن تكتبه الأتمتة، فهو سؤال استشاري لا سؤال بنية تحتية. وإذا فضّلت أن ينظر أحد فيه معك، فخدمة الدعم المُدار واتفاقيات مستوى الخدمة لدينا تغطي هذا النوع من العمل المستمر على صحة النظام.
نمو قاعدة البيانات ليس مشكلة تُحل مرة واحدة، بل رقم تراقبه مرتين في السنة، طوال عمر النظام.
