ما هي الأسباب ؟ وما هي الحلول؟
عندي برنامج وضعت الداتا في ملف والواجهات في ملف ، وجعلت الداتا في السيرفر والواجهات في أجهزة المستخدمين ، لكن ألاحظ بطءا شديدا في البرنامج فما هي الأسباب المحتملة، وما هي الحلول ؟
ما هي الأسباب ؟ وما هي الحلول؟
عندي برنامج وضعت الداتا في ملف والواجهات في ملف ، وجعلت الداتا في السيرفر والواجهات في أجهزة المستخدمين ، لكن ألاحظ بطءا شديدا في البرنامج فما هي الأسباب المحتملة، وما هي الحلول ؟
أحيانا يكون البطء من الشبكة نفسها
و قد واجهتني فى مرة مشكلة بطيئ كان سببها عيب تصميم فى البرنامج ، فقد كنت أستنتج قيم كثيرة باستخدام دوال مركبة ، و بعد ذلك قمت بحفظها فى حقول فزادت السرعة .
أيضا ال indexex المكررة و الغير لازمة و التي بها أخطاء فى الاسم ، و التي تتولد نتيجة نسخ الجداول من بعضها أثناء التصميم ( راجع ال indexex لجميع الجداول )
هذا ما هو حاضر بذهني الان ، و فى انتظار آراء باقي الأخوة
أخي الكريم
السلام عليكم
للبطء على الشبكة أسباب كثيرة منها بالطبع ما يعود للبرامج ومنها ما يعود للأجهزة المادية وبحاصة تجهزات الشبكة مثل الكيبل وأجهزة الهب وغيرها
من المعلوم أن كروت الشبكة عادة تستخدم نظام الإنصات والإرسال أي أنها تحاول التحسس من الكيبل فإذا لم تجد فيه شيئاً فإنها تقوم بإرسال البيانات بعد تحويلها ومن ثم يتم استقبالها في الجهاز المصدر واسترجاعها
معنى ذلك أن احتمالية تصادم البيانات احتمالية واردة عندما يرسل جهازان بيانات في نفس الوقت وفي هذه الحالة تفشل عملية الإرسال ويقوم كرت الشبكة بمعاودة المحاولة مرة أخرى بعد تطبيق معادلة زمنية معينة حتى لا يتكرر التصادم مرة أخرى
ثمة أمر آخر مهم له علاقة بهذه القضية وهو أن طريقة البث عبر الشبكة تختلف فهناك البرودكاست أو البث العريض حيث يتم بث البيانات لجميع الأجهزة ثم تستقبل من الجهاز المعني فقط وهناك اليوني كاست الذي يبث للجهاز المعني فقط
هذه المعلومات مهمة جداً لمعرفة طبيعة ما يجري على الشبكة
السؤال الآن ما السبب في بطء العمليات داخل أكسس
عندما تتعامل مع أكسس فإنك في الحقيقة تتعامل مع ملف واحد هو ملف قاعدة البيانات ومعنى ذلك أنك عندما ترسل أمر الاستعلام إلى قاعدة البيانات فلن يتم عرض النتائج حتى يتم استقبال كافة البيانات ووصولها سليمة من الجهاز الرئيسي إلى جهازك وهذا هو الفرق بين أكسس وقواعد البيانات التي تعمل كسيرفر مثل MSSQL وغيره
ففي أكسس يتم تنفيذ الاستعلام على نفس جهازك والسيرفر مجرد وعاء للبيانات أما في قواعد بيانات السيرفر فالاستعلام يتم تنفيذه على السيرفر ثم يقوم السيرفر بإرسال النتيجة فقط دون بقية البيانات كما أنه يقوم بإرسال النتيجة على شكل دفعات ومن عمل على أكسس مع MSSQL يلاحظ ذلك بشكل واضح
أخيراً أعيد ما ذكرته لك أولاً وهو أن المشكلة قد لا يتحملها أكسس وحده بل إن الشبكة عليها عبء كبير في ذلك وجرب على سبيل المثال استخدام أكسس في شبكة صغيرة قصيرة الكيبل قليلة تبادل البيانات وسوف ترى الفرق
ثمة ملاحظة أختم يها هذا الحديث وقد لاحظتها من خلال التجربة وسبق أن ذكرتها في هذا المنتدى وهي أن أكسس 2000 يعيبه البطء بشكل غريب وقد سبق أن قمت بتجربة لحساب الوقت حيث نفذت عملية بأكسس 97 وأكسس إكس بي واستغرق تنفيذها جوالي 3 ثواني بينما استغرقت حوالي 35 ثانية في أكسس 2000
تحياتي
أخوك / أبو هاجر
ما شاء الله يا ابا هاجر
لا شاردة ولا واردة اللهم زد وبارك
جزاكم الله خير جميعا
وفي انتظار مزيد من مشاركات الإخوة وتجاربهم
اخى العزيز ابو هاجر ماذكرته صحيح 100 % اضف الى ذلك بغض النظر عن قوة الشبكة انه لو زاد عدد المستخدمين عن 5 مستخدمين ومع بيانات كثيرة يحدث التصادم واعادة المحاولة ومن هنا ننصح كل من يعمل برنامج على الكثر من 5 مستخدمين فى نفس الوقت بعمله على SQL وهذا عن تجربة شخصية لى فى عدد سجلات 5000 ومستخدمين عددهم 9 كان شاشة استعراض البيانات تاخذ 45 ثانية فى اكسس 2000 وفى XP اخذت 32 ثانية وفى SQL اخذت 9 ثوانى ولكن من المؤكد انه لو عدد المستخدمين 2 او 3 مافيش اى مشكلة على الاطلاق
ملحوظة اخرى استخدام سويتش فى الشبكة افضل من هب
موقف مشابه ... وكان السبب ان هناك نموذج به مربع نص به معادله وهذه المعادله تعتمد على مصدر سجل لاستعلام مكون من سبع استعلامات اخرى لدرجة انه من بعد الضغط على زر الامر يستغرق 120 ثانيه حى يفتح النموذج على الجهاز الاخر على الشبكه ,,:mad:
اخواني هل جربتم الامر التالي:
msaccess /decompile
فهو يفيد في تسريع قاعدة البيانات وهو امر غير مكتوب في المساعده و لا اعلم ان كان هناك اوامر اخرى غير مكتوبه
وضع كل جدول في قاعده مستقلة افضل من وضع الجداول جميعها في قاعده واحده (عن تجربة شخصية ) حتى لايحدث عطب في قاعدة البيانات.
السلام عليكم
حسب ما أعرف عن ال Access انه لا تنفع للوضع على سيرفر واستخدامه من قبل عدة اشخاص في نفس الوقت
ارجو منك التأكد من قاعدة البيانات وحفظ نسخة منها كي لا تخسرها كلها
يا شباب البطء في الشبكة على قواعد اكسس ..
تكون بعدة احتملات ... منها عدد المشارة في التطبيق .. ومنها ضعف في المكونات المادية للشبكة .. والبرمجية كذلك ..
ومن موضوع المشارة هناك طريقة توصي بها الكثير من الشركات الخبرا
وهياء وضع data في الملقم ونضع التطبيقة في جميع الاجهزة المرتطبة بالملقم وفي هذا الحالة يقل عملية نقل المعلومات ...
يعني التطبيقة يضل في الاجهزة ... والداتة المشتركة في الملقة
...
تلميذكم ... المبتدى .. امين اليافعي
اخي awaisa --
اقتباساخواني هل جربتم الامر التالي:msaccess /decompile
فهو يفيد في تسريع قاعدة البيانات وهو امر غير مكتوب في المساعده و لا اعلم ان كان هناك اوامر اخرى غير مكتوبه
اين يوضع هذا الامر في القاعده ؟
الأخ مبتدئ والأخ awaisa
السلام عليكم ومعذرة للمقاطعة
الأمر السابق ينفذ من قائمة ابدأ >>> ثم تشغيل ثم تكتب الأمر السابق
تحياتي
أخوك / أبو هاجر
اقتباسوضع كل جدول في قاعده مستقلة افضل من وضع الجداول جميعها في قاعده واحده (عن تجربة شخصية ) حتى لايحدث عطب في قاعدة البيانات.
أخي fahadam فينك ؟؟
و بالنسبة للموضوع عاليه ، بالطبع مع احترامي لرأيك لا اعتقد ان ذلك ضروري
اقتباسحسب ما أعرف عن ال Access انه لا تنفع للوضع على سيرفر واستخدامه من قبل عدة اشخاص في نفس الوقت
أخي عبدالله ، بالطبع مع احترامي لرأيك بالطبع يصلح و تمت تجربة ذلك لمرات عديدة
(f)
معلومات قيمه يابو هاجر والله يكثر من امثالك
;)
ما شاء الله تبارك الله
اخواني انا مجرب طريقة جميلة ولا حدث مشاكل لحد الان مدري هل هي صحيحة وتجربونها انتم ام انها مرت عليكم وما كانت مفيدة
الطريقة هي
وضع الملف بالكامل في السيرفر ووضع ملف اختصار له في كل الاجهزة الطرفية
يعني الكل يشتغل على نسخة وحدة
سويتها في ادارة معينة ولا زالوا شغالين عليها الى تاريخه وحسب علمي مافيه مشاكل لانهم لين الحين ما صجوني بتعال وروح ....
جربوا وشوفوا وتحياتي
هذا الموضوع مغلق.