سؤال

لذلك، في مكان عملي، لديهم ملف وصول ضخم (يستخدم مع MS Access 2003 و 2007). حجم الملف حوالي 1.2GB، لذلك يستغرق فتح الوقت لفتح الملف. لا يمكننا حذف أيا من السجلات، ولدينا حوالي 100 طاولة (كل شهر نقوم بإنشاء 4 طاولات أخرى، لا تسأل!). كيف يمكنني تحسين هذا، أي تقليص الملف؟

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

المحلول

حسنا .. استمع إلى LLARry، وابق في الاعتبار أنه على المدى الطويل، عليك أن تجد قاعدة بيانات أخرى لعقد بياناتك!

ولكن على المدى القصير، أنا منزعج للغاية من هذا "4 طاولات جديدة شهريا" شيء. 4 طاولات شهريا هي 50 سنويا ... هذا يبدو بالتأكيد غريبا على كل "مدير قاعدة البيانات" هنا. من فضلك قل لنا: كم عدد الصفوف، كيف يتم بناؤها، ما هي عليه، ولماذا يجب عليك بناء الجداول كل شهر؟

اعتمادا على ما تقوم به مع بياناتك، يمكنك أيضا التفكير في أرشفة بعض الجداول كملفات XML (أو حتى XLs؟). هذا يمكن أن يكون له معنى "البيانات التاريخية"، التي لا يجب الوصول إليها من خلال العلاقات أو وجهات النظر، إلخ. مثال واحد جيد سيكون قائمة المكالمات الهاتفية التي تم جمعها من PABX. يمكن حفظ البيانات على أنها / تحميلها من ملفات XML / XLS من خلال سجلات ADODB أو طريقة TransferDatabase

نصائح أخرى

بامكانك فعل شيئين:

  • استخدام الجداول المرتبطة
  • "مضغوط" قاعدة البيانات (قواعد البيانات) كل مرة في حين

إن الجداول المرتبطة بحد ذاتها تحد من الحجم الكلي لقاعدة البيانات، ولكنها سوف "حزمة" في ملفات أصغر وأكثر قابلية للإدارة. للنظر في هذا:

"ملف" القائمة + "احصل على البيانات الخارجية" + الجداول المرتبطة "

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

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

 "أدوات" الأدوات "+" قاعدة بيانات الأدوات المساعدة "+" مضغوط وإصلاح قاعدة البيانات ...

أنت حقا تدفع ضد حدود MS Access هناك - هل تدرك أن الملف لا يمكن أن ينمو أكبر من 2 جيجابايت؟

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

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

يجب أن تفكر حقا في بنية DB الخاصة بك. إذا لم تكن هناك أي روابط بين الجداول، فقد تحاول نقل بعضها إلى قاعدة بيانات أخرى (DB واحد في السنة :) كحل قصير الأجل ..

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

إذا كان لديك بالفعل مبرر للجداول الشهرية (التي لا أستطيع أن أتخيلها، مرة أخرى)، فلماذا عدم وجود 1 نهاية ظهر شهريا؟
يمكنك أيضا الحصول على الطرف الخلفي الرئيسي، مع ذلك، دعنا نقول، 3 أشهر من البيانات عبر الإنترنت، ثم أرشيف DB، حيث تقوم بنقل سجلاتك القديمة.
يمكنني استخدام المعاملات، مع وجود الجدول الرئيسي حوالي 650.000 سجل، والوصول استجابة للغاية.

بضعة "استيعاب في القش" أفكار

إلقاء نظرة على أنواع البيانات لكل عمود، قد تتمكن من تخزين بعض الأرقام كما بايت حفظ كمية صغيرة لكل سجل

انظر إلى الفهارس والتخلص من تلك التي لا تستخدمها. على الجداول الكبيرة الفهارس غير الضرورية يمكن أن تضيف كمية كبيرة من النفقات العامة.

أود أن + 2 ^ 64 اقتراحات حول تصميم قاعدة البيانات غريبة بعض الشيء ولكن لا شيء لم يقال بالفعل لذلك لن أعمل النقطة

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