سؤال

كيف يمكنني ضغط قاعدة بيانات Firebird 2.1 ، كما نفعل في الوصول إلى MS (التخلص من البيانات المحوّة ، فهرس إعادة تشكيل ، إلخ)؟

هناك طريقة للقيام بذلك؟

شكرًا!

هل كانت مفيدة؟

المحلول

عادةً ما لا توجد حاجة لضغوط قاعدة بيانات Firebird: راجع ملاحظات إصدار FB حول مجموعة القمامة وعملية تلقائية (لكل عملية تكوين) تدعى "Sweep". بعبارة قليلة ، يقوم FB بإعادة استخدام المساحة في الصفحات عندما يتم حذف السجلات أو يتم تحرير أقدم إصدار سجل يطلب قطع مساحة القرص فقط عندما تصبح المساحة الحرة صغيرة جدًا (أي تحت نسبة مئوية محددة). يتم تنفيذ عملية المسح على أنها افتراضية بعد عدد محدد مسبقًا من المعاملات المرتكبة ، إنها مهمة باهظة الثمن. يجب أن يكون المقصود من النسخ الاحتياطي والاستعادة بمثابة الملاذ الأخير إلى التحسين والانكماش ، حيث يعيد هذا الإنشاء وتحسين الفهارس أيضًا ، ولكن عادةً ما لا تكون هناك حاجة لأن هناك أوامر وأدوات لإعادة بناء الفهارس.

نصائح أخرى

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

من الأسئلة الشائعة الرسمية

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

والسبب هو أنها عملية باهظة الثمن ، فهي تتطلب الكثير من كتابة القرص والذاكرة - تمامًا مثل عملية إعادة تحريك تقسيم القرص الصلب. يتم تمييز أجزاء قاعدة البيانات (الصفحات) التي تم استخدامها بواسطة هذه البيانات على أنها فارغة وسيقوم Firebird بإعادة استخدامها في المرة القادمة التي يحتاج فيها إلى كتابة بيانات جديدة.

إذا كانت مساحة القرص مهمة بالنسبة لك ، فيمكنك استعادة المساحة عن طريق القيام بالنسخ الاحتياطي ثم الاستعادة. نظرًا لأنك تقوم بالنسخ الاحتياطي لاستعادة على الفور ، فمن الحكمة استخدام "Inhibit Garbage Collection" أو "لا تستخدم مجموعة Garbage" (-G في GBAK) ، مما يجعل النسخ الاحتياطي أسرع بكثير. يتم استخدام مجموعة Garbage لتنظيف قاعدة البيانات الخاصة بك ، وبما أنها مهمة صيانة ، فغالبًا ما يتم ذلك مع النسخ الاحتياطي (حيث يتعين على النسخ الاحتياطي أن تتجاوز قاعدة البيانات بأكملها على أي حال). ومع ذلك ، ستذهب قريبًا إلى التخلص من ملف قاعدة البيانات هذا ، وليس هناك حاجة لتنظيفه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top