سؤال

سيناريو: يوجد برنامج قديم (لست متأكدًا من اللغة) وقد طُلب مني "النماذج المدمجة والأرشفة في قاعدة البيانات". في الوقت الحالي عندما يفتح المستخدم التطبيق ، يستغرق الأمر حوالي 2-5 دقائق لتحميل حوالي 27000 سجل !!! نظريتي هي أنها تقوم بتحميل جميع السجلات على بدء التشغيل ولكن هذا قد لا يكون السبب الوحيد. بعد القيام ببعض الحفر وإيجاد نهاية وصول خلفية تبدو صحيحة ، وجدت أيضًا ملفات الوصول نفسها على 15+ سهمًا آخر داخل الشركة. الآن تم إنشاء هذا التطبيق في وقت ما حوالي عام 1997 عندما أظن أن الوصول كان هو القاعدة ، ولكن هل سيحصلون حقًا على بيانات من 15+ من قواعد بيانات الوصول؟ ما يبدو أنه هو المعيار لتسريع هذا البرنامج هو أرشفة السجلات القديمة في قاعدة بيانات وصول أخرى (وهذا هو السبب في أنني أعتقد أنه يقوم بتحميل كل شيء عند بدء التشغيل.

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

ملاحظة جانبية: هل سيكون من الممكن الوصول إلى السجلات القديمة التلقائية؟ هذا يعني نقلها إلى ديسيبل آخر يسمى xxxarch.

شكرا مقدما. سأحاول الإجابة على أي أسئلة لديك.

تعديل:

هيريس تحديث على الموقف.

يبدو أنه فقط باستخدام قاعدة بيانات واحدة باعتبارها الرئيسية والواحدة لأرشيف. لا يزال يتعين عليّ أن يكون لدي حساب مستخدم خاص بي لفتح التطبيق ، لكن عند النظر إلى قاعدة البيانات ، يوجد جدول مستخدم يحتوي على معرف تسجيل الدخول ونفس كلمة المرور (كلمة المرور) ، لذا حاولت تسجيل الدخول كأحد هؤلاء المستخدمين البيانات لا تعدل أي شيء. عند الاختيار ، تمكنت من الحصول على البيانات على الفور تقريبًا ولم أكن أرى أيًا من التباطؤ الذي يحصل عليه المستخدمون الآخرون. ما زلت لم أر الرمز المصدري ولكن مما يمكنني قوله (أخذ EXE ووضعه في المفكرة) يبدو أنه تم ترميزه في VBA وربما تم إنشاؤه باستخدام MS Access. كما يبدو أن التطبيق ينشئ temp.mdb في مجلد بيانات. حاليا لا يوجد شيء فيه. لا طاولات ، لا شيء. أفترض/آمل أن هذا هو ما يبطئ المستخدمين ويمكن حذفه لتحسين الأداء. سأقوم بنشر تحديث آخر بمجرد أن أحصل على الكود المصدري ولدي فكرة أفضل عما يبطئه.

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

المحلول

بضعة أشياء يجب مراعاتها:

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

سيقترح شخص ما الترقية إلى DB "أكبر" مثل SQL Server ، إما في شركتك أو في هذا المنتدى. لا تفعل ذلك حتى تعزل المشكلة أو ما لم يكن لديك سبب غير الأداء. هناك فرصة معقولة لأن المشاكل ناتجة عن سوء تصميم التطبيق أو بنية DB. من غير المرجح أن يساعد إلقاء أداة أكثر قوة في المشكلة دون تغيير النهج.

يتم الوصول إلى DB إلى حد أقصى للمستخدمين المتزامنين قبل وقت طويل من الخروج على البيانات. هل بدأ الكثير من المستخدمين (30+) فقط في استخدام النظام؟ يمكن أن تكون جزءا من المشكلة.

أرشفة السجلات القديمة: سيتعين عليك بناء شيء للقيام بذلك. والخبر السار هو أنه ليس كل هذا صعبًا.

الوصول إلى أكثر من 15 قاعدة بيانات: هل أنت متأكد من أن واجهة المستخدم الرسومية الواجهة الأمامية غير مكتوبة في الوصول. إنها بنية شائعة مع إمكانية الوصول إلى وضع نهاية أمامية MDB على جهاز المستخدم النهائي (نسخها في كل مكان) متصل بملف بيانات MDB المركزي على الشبكة. أفضل طريقة لمعرفة ذلك هي فتح قواعد البيانات ومعرفة ما إذا كانت تحتوي على جداول فقط ، أو الجداول + النماذج/التقارير.

نصائح أخرى

يبدو لي أن طلبك الأول هو حل هذه المشكلة:

قد أتمكن أو لا أتمكن من الحصول على الكود المصدري لأنه قد يكون قد تم إنشاؤه بواسطة مقاول والرمز المفقود منذ فترة طويلة.

كما هو الحال الآن ، فأنت تطلب منا أن نتكهن بأسباب وعلاجات العلاجات للبطء ... دون أي معرفة حول ما يجري بالفعل.

إذا لم يكن لديك رمز مصدر ، فلا يمكنك تغيير قاعدة البيانات الخلفية إلى SQL Server ولا أي شيء آخر.

ومع ذلك ، إذا كان لديك بالفعل إمكانية الوصول إلى ملفات البيانات وتمكنت من تعديلها ، فلماذا لا تحقق الفهرسة؟ 27k سجلات تافهة لأي قاعدة بيانات ، بما في ذلك الوصول ، والبطء في تحميل البيانات التي تشير لي إلى أن الجداول ببساطة لم يتم فهرستها بشكل صحيح. إذا قمت بفحص الجداول ورؤية أي فهارس على الحقول الواضحة ، فحاول إضافتها ومعرفة ما إذا كان يسرع الأمور.

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

كل ما سبق يفترض ، بالطبع ، أن بيئة الشبكات مناسبة للوصول/JET/ACE. أي أنه إذا تم الوصول إلى ملفات قاعدة البيانات هذه عبر أي شيء آخر غير الشبكة المحلية السلكية ، فلا يوجد شيء يمكن فعله حيال ذلك (WAN و WiFi خارج تمامًا من أجل JET/ACE).

أخيرًا ، فيما يتعلق بموضوع الأرشفة ، أعتقد أنه لا يوجد مبرر لبيانات الأرشفة من أي وقت مضى إلا إذا كنت تعمل بالفعل ضد الحدود الصعبة على الأجهزة/البرامج. في هذه الحالة ، أنت لست قريبًا من ذلك.

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