اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

بطئ شديد في عملية حفظ السجلات على الشبكة


at_aziz

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

 

اخواني عندي مشكله ماعرف اجد لها حل

 

عندي برنامج يعمل في مديرية الشؤون الصحيه في احد مناطق  المملكة

والبرنامج مربوط في الشبكة شبكة المديرية

وضعت قاعدة البيانات في جهاز السيرفر لديهم 

وقمت بتوزيع واجهة الادخال على عشرة اجهزة تعمل في قسم واحد بالمديرية

وقمت بربط الواجه في قاعدة البيانات الموجوده على السيرفر

وكانت الامور ماشية تمام والبرنامج يعمل بكفاءه على الشبكة الخاصه بالمديرية

لكن بعد فتره  هناك مشكلة واجهتني واشتكى منها  المستخدمين للبرنامج 

 وهي انه عندما يتم ادخال بيانات سجل ويضغط على زر الحفظ

يتاخر في الحفظ وياخذ اكثر من ثلاث دقائق حتى يتم حفظ السجل

والى الان ماني عارف وين المشكله

هل المشكله من قاعده البيانات لكثره السجلات فيها  

او هل المشكله من الشبكة 

وهل هناك اعداد لقاعدة البيانات تجعل الحفظ عن طريق الشبكة سريع

او اعداد للشبكه 

ارجو الافاده بارك الله فيكم وجزاكم الله خير

 

 

 

رابط هذا التعليق
شارك

وعليكم السلام:smile:

 

1. اعمل ضغط واصلاح لبرنامج البيانات BE ، وكذلك لبرنامج الواجهة FE ،

2. واذا حبيت ، خلينا نشوف الكود ، واللي ممكن نتوصل الى شيء يفيدك.

 

جعفر

 

  • Like 1
رابط هذا التعليق
شارك

بارك الله فيك وجزاك الله خير اخي جعفر 

ان شاء الله غدا راح اعمل لها ضغط واصلاح

 

وهذا الكود اللي استعمله لعملية حفظ السجل

وهل هو جيد لعملية الحفظ  او هناك كود افضل منه

Dim db As Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Table_QararatHayah")
rs.AddNew
rs!QNo = Me.QNo
rs!TxtDate = Me.TxtDate
rs!id = Me.id
rs!Qd = Me.Qd
rs!PtName = Me.PtName
rs!SJL = Me.SJL
rs!Age = Me.Age
rs!Age1 = Me.Age1
rs!Gender = Me.Gender
rs!Nat = Me.Nat
rs!Diag = Me.Diag
rs!Adress = Me.Adress
rs!RefFrom = Me.RefFrom
rs!RefNo = Me.RefNo
rs!RefDate = Me.RefDate
rs!MeetD = Me.MeetD
rs!MeetD1 = Me.MeetD1
rs!MeetD2 = Me.MeetD1
rs!QararNo = Me.QararNo
rs!QararNo1 = Me.QararNo1
rs!Qarar1 = Me.Qarar1
rs!Qarar = Me.Qarar
rs!RefTo = Me.RefTo
rs!Secrter = Me.Secrter
rs!Dr1 = Me.Dr1
rs!Dr2 = Me.Dr2
rs!Dr3 = Me.Dr3
rs!Dr4 = Me.Dr4
rs!D1 = Me.D1
rs!D2 = Me.D2
rs!D3 = Me.D3
rs!D4 = Me.D4
rs!DR5 = Me.DR5
rs!D5 = Me.D5
rs!amr3 = Me.amr3
rs!mobaile = Me.mobaile
rs!MudeerHaiah = Me.MudeerHaiah
rs!Qm = Me.Qm
rs!DateEntered = Me.DateEntered1
rs!DateModified = Me.DateModified1
rs!TimeEntered = Me.TimeEntered1
rs!TimeModified = Me.TimeModified1
rs!userEntered = Me.userentered1
rs!userModified = Me.userModified1
rs!DateModified = Me.DateModified1
rs!TimeModified = Me.TimeModified1
rs!userModified = Me.userModified1

rs.Update
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
MsgBox "  لقد تم الحفظ بنجاح", vbOKOnly + vbInformation + vbMsgBoxRight, "شكراً "

 

رابط هذا التعليق
شارك

الكود مافيه شيء :smile:

 

1.

هذا معناه ان الواجهة ليست متصلة دائما بالجداول ، وانما يتم الاتصال وقت حفظ البيانات ،

اذا كان هذا صحيح ، فالافضل ان يكون عندك من بداية تشغيل البرنامج نموذج مخفي فيه بيانات من جدول , ويمكن ان يكون جدول فيه اسم/رقم البرنامج فقط ، المهم ان يكون الاتصال بين الواجهة والخلفية مستمر وغير منقطع من بداية تشغيل البرنامج ،

 

2.

5 ساعات مضت, at_aziz said:

وضعت قاعدة البيانات في جهاز السيرفر لديهم 

ولو انه سؤال سخيف ، هل برنامجك على نفس القرص الذي عليه نظام السيرفر؟

من المهم جدا ان لا تضع قاعدة بياناتك في القرص الذي عليه نظام الكمبيوتر، الوندوز ، سواء على السيرفر او على اي كمبيوتر آخر ،

نعم انا قلت قرص ولم اقل partition ، يعني اذا القرص فيه C و D و E ، فلا تضع البرنامج على اي واحد منهم ، وانما ضعه على قرص آخر:smile:

ليش؟

لاحظ الكمبيوتر او اللابتوب ، وبدون ان تشتغل عليه ، تلقى ضوء القرص دائما يولع وينطفئ ،

هذا معناه ان نظام الكمبيوتر ، الوندوز ، يقوم بالعديد من الاعمال في الخلفية ،

واذا النظام اعطى امر لتعديل شيء معين فيه ، وفي نفس الوقت قمت انت بطلب شيء معين في قاعدة بياناتك (مثل استعلام او حفظ بيانات او ...) ، ولآن النظام وبرنامجك على نفس القرص ، فالكمبيوتر سيجعل برنامجك ينتظر الى ان ينتهي من امر النظام ،

بينما اذا كان برنامجك في قرص مستقل ، فـ CPU سيعطي الامر لكل قرص لعمل اوامره الخاصة به:smile:

 

3.

تأكد ان الحقول التي فيها معيار في الاستعلام او في النموذج ، تأكد انها مفهرسة في الجدول ،

فالفهرسة تجعل حجم البرنامج اكبر شوي ، ولكنها تجعل التعامل مع بيانات الجدول اسرع:smile:

 

 

الاشياء اللي قلتها:

ضغط واصلاح BE و FE ، مكان وجود البرنامج على القرص ، والفهرسة ،

هذه جميعا لي تجارب معاها:smile:

 

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

بارك الله فيك وجزاك الله خير اخي الفاضل جعفر

نعم مثل ما ذكرت الجداول منفصله عن الواجهه

لكن اخي كيف اسوي نموذج مخفي يكون متصل 

هل اجعل النموذج اللي يفتح عند بدء التشغيل متصل بجدول في القاعده اللي على السيرفر

او اجعل هذا الخيار في في كل نموذج يتم فيه ادخال البيانات

 

 

بالنسبه لقاعدة البيانات  موجوده في القرص الصلب في جهاز السيرفر 

وجهاز السيرفر نظام ويندوز سيرفر 

وهذا الجهاز مترتبطه فيه جميع االاجهز الاخر من اللي عليها نظام ويندوز 

وهل هذا يكفي  ام لازم نضع القاعده على قرص مستقل 

 

بانتظار ردك

بارك الله فيك ونفع بك

وفقك الله ورعاك 

وشكرا لك اخي على اهتمامك بالموضوع

 

رابط هذا التعليق
شارك

22 ساعات مضت, at_aziz said:

نعم مثل ما ذكرت الجداول منفصله عن الواجهه

لكن اخي كيف اسوي نموذج مخفي يكون متصل 

هل اجعل النموذج اللي يفتح عند بدء التشغيل متصل بجدول في القاعده اللي على السيرفر

او اجعل هذا الخيار في في كل نموذج يتم فيه ادخال البيانات

 

عفوا الموضوع يحتاج توضيح شوي اكثر:smile:

انا لما شفت كود الحفظ ، قلت:

في 7/22/2017 at 17:50, jjafferr said:

هذا معناه ان الواجهة ليست متصلة دائما بالجداول ، وانما يتم الاتصال وقت حفظ البيانات ،

فالسؤال هو: هل البرنامج كله يعمل بطريقة الكود ، او ان هناك ربط لجداول قاعدة البيانات الخلفية ، يعني جداول قاعدة البيانات الخلفية مربوطة بالبرنامج الامامي؟

فإذا الجداول مربوطة ، فكل الكلام اعلاه لا ينطبق عليك ، وانسى هذه الفقرة:smile:

 

اما اذا كان برنامجك كله بالكود ولا يوجد عندك ربط مع جداول البيانات الخلفية ،

فتستطيع فتح نموذج واحد فقط ، مثل نموذج بدء التشغيل والمتصل بجدول في القاعده اللي على السيرفر ، وتقدر تخليه ظاهر او مخفي ، ولكن لا تغلقه إلا عند إغلاق البرنامج:smile:

 

 

22 ساعات مضت, at_aziz said:

بالنسبه لقاعدة البيانات  موجوده في القرص الصلب في جهاز السيرفر 

وهل هذا يكفي  ام لازم نضع القاعده على قرص مستقل 

اذا كان هذا الكمبيوتر حقيقةً سيرفر ، فالمفروض يكون فيه شيء بإسم Raid ، اي مجموعة هاردسكات تعمل مع بعض كهارددسك واحد ، وبالتالي كُله تمام:smile:

اما اذا كان كمبيوتر عادي فيه هارددسك واحد ، ولكن منصب عليه Windows Server ، فهذا لا هو سيرفر ، ونعم تحتاج الى هارددسك اضافي لبرنامجك:smile:

 

 

ولكني شبه متأكد بأن الضغط والاصلاح راح يحل المشكلة ان شاء الله ، وبإنتظار البشارة منك:smile:

 

جعفر

رابط هذا التعليق
شارك

بارك الله فيك وجزاك الله خير اخي الفاضل جعفر

عذرا على التاخير بالرد  لعدم توفر الانترنت لدي في اول النهار

20 ساعات مضت, jjafferr said:
20 ساعات مضت, jjafferr said:

فالسؤال هو: هل البرنامج كله يعمل بطريقة الكود ، او ان هناك ربط لجداول قاعدة البيانات الخلفية ، يعني جداول قاعدة البيانات الخلفية مربوطة بالبرنامج الامامي؟

فإذا الجداول مربوطة ، فكل الكلام اعلاه لا ينطبق عليك ، وانسى هذه الفقرة

 

 

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

فقط نماذج الادخال تعمل بالكود 

اما نماذج البحث  مرتبطه بالجداول مباشره

لكنها ماتعمل الاعند الفتح

.

اما بالنسبة للسيرفر  اعتقد انه سيرفر حقيقي 

لانه جميع فروح المديريه مرتبط فيه  وهو كذلك مبربوط بوزارة الصحة

والضغط والاصلاح 

اليوم ماقدرت اتواصل مهم لعدم توفر الانترنت  

ولعل يتيسر غدا

 

جزاك الله خير اخي وبارك فيك

وفقك الله

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information