• 0
mahmoud.com

كبر حجم قاعدة البيانات

سؤال

السلام عليكم

 

     يوجد مشكلة    فى ذيادة حجم البيانات فى اكسيس   تسبب فى بطء شديد فى فتح الفورم او عرض البيانات

 

 

المشكلة مع vb6  و اكسيس 2000

 

وقمت تجربة vb2010  مع اكسيس

ونفس المشكلة بطء فى التشغيل

 

باقوم بنسخ السجلات الى عدد حوالى من 100000 الى 200000

 

فى جدول واحد  ويقوم البرنامج فى العمل ببطء شديد

ولم اجرب sql server

 

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

 

 

بحثت كثير على الانترنت ولم اجد احد يتكلم على المشكلة

علما بان قاعدة البيانات تصل الى 65 ميجا

 

ماحل مشكلة بطء البرنامج عند ذيادة حجم البيانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

14 إجابة على هذا السؤال .

  • 0

وما هى افضل افضل قاعدة بيانات من حيث عرض البيانات بسرعة وبدون توقف البرنامج  عند ذيادة حجم البيانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

برنامج أكسس لا يسعف في البرامج التي عليها كم ادخالات ضخمة لكن أيضا هل سبب البطيء كبر حجم البيانات فقط ؟

أم القاعدة موجوده علي شبكة مثلا ويوجد بطيء في استجابة القاعدة مع الشبكة مما يؤثر علي آداء البرنامج ؟

واعلم ان مسألة البطيء اسبابها كثيرة ومتنوعة ولا استطيع ان اقترح عليك الانتقال لبرنامج آخر أقصد استخدام SQL Server حتي نتأكد من ان سبب البطيء هو فعلا من كبر حجم القاعدة وانك استخدمت كل اعمال الصيانة اللازمة 

للسيطرة علي موضوع البطيء

أيضا تصميم البرنامج سبب رئيسي في بطيء البرنامج فربما من صمم البرنامج شخص مبتديء ولم يراعي ان البرنامج في يوم من الايام انه ستحمل بيانات كثيرة

لذلك قلت لك ان الاسباب كثيرة ومحتاجة بحث وتحليل عن السبب الرئيسي للبطيء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على ردك استاذ محمد

 

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

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

                                                        لكن عند نسخ السجلات لمرات حتى اصل الى 200000   او 100000 سجل

 

 واقوم بتجربة البرنامج يحدث بطء فى عرض البيانات

 

 

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

 

    وطرق المقترحة لسرعة تنفيذ البرنامج

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
  لكن عند نسخ السجلات لمرات حتى اصل الى 200000   او 100000 سجل

 

 

ماذا تقصد بالنسخ لمرات

اتمني ان تقوم بشرح تفصيلي عن الذي تفعلة حتي يتم ايجاد الحلول المناسبة لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ما المقصود بنسخ السجلات؟

 

الأفضل وضع نسخة من مشروعك هنا ليتم المساعدة إن شاء الله بشكل افضل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اقصد بنسخ السجلات  بقوم بنسخ البيانات داخل جدول وبقوم بالنسخ داخل الجدول  وتكرار عملبة النسخ يدويا لذيادة البيانات داخل الجدول حتى تصل مثلا الى 100000 سجل

 

لانى لم استطيع ادخال كمية البيانات هذا

 

بعمل كدة حتي اقوم بذيادة البيانات داخل الجدول واجرب البرنامج

تم تعديل بواسطه mahmoud.com
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

1- ما فهمته من كلامك انك تقوم بعمل هذا الاجراء لمجرد تجربة آداء البرنامج عندما تكون حجم المدخلات كبيرة

فهل ما فهمتة صحيح ؟

2- هل حاولت ان تعمل Compact And Repair لقاعدة البيانات بعد عمليه النسخ ؟ لحسين الاداء

3- عندما تستخدم SQL Server فبلاشك ان الاداء سيكون أفضل بكثير جدا جدا جداً ولا يوجد مقارنة بين الاكسس و SQL بخصوص كل شيء لكن لا أريد ان الفت انتباهك لــ SQL الان حيث انك لم تستخدمة ولا اريد ان اشتت تفكيرك

في أكثر من اتجاه 

4- المهم أنا لا استطيع الي الان ان اضع يدي علي مشكلتك ما هي بالضبط لكن اذا كنت تستخدم الاكسس وقد قمت بتسجيل 100000 سجل وبعدها اصبح البرنامج بطيء فهذا غير منقطي حيث ان برنامج  الاكسس يستوعب حجم بيانات أكبر من 

هذا الحجم بكثير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا استاذ محمد لمتابعتك للمشكلة ومحاولة مساعدتي

 

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

 

اولا لم اعمل ب sql Server  لكن لدى خلفية عنها 

 

مرفق جزء من البرنامج مع قاعدة بيانات كبيرة الحجم  شاهد الوقت  المطلوب لعرض البيانات

 

بعد اذن حضرتك انا مش فاهم طريقة الضغط والاصلاح لم تعمل معي

اريد كود لاصلاح  يعمل على قاعدة بيانات لها باسورد

 

 

سؤال اخر استاذى

 

هل sql Server

 

اسرع حين يذيد حجم البيانات  او بعد تسجيل بيانات كثيرة

 

هل تسبب بطء فى عمل البرنامج او يعمل كما هو

 

 

New Folder.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الفاضل

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

1- لاحظت من خلال المرفق انك تستخدم فيجوال بيسك 6 وهذا البرنامج قد عفي عليه الزمن ولا يستخدمة أحد هذه الايام

2- هذا المنتدي ليس مخصص لمناقشة المشاريع المصممة بالفيجوال بيسك 6 ولكن للمشاريع المصممة بالفيجوال بيسك دوت بجميع اصداراته

3- حجم القاعدة يعتبر صغير جدا و من المفترض انه لا يحدث بطيء لكن لا استطيع تقييم الموضوع بالكامل فربما طرق الاتصال القديمة الموجوده في الفيجوال بيسك 6 هي سبب البطيء أو انك تتبع اساليب في التعامل

مع قاعده البيانات في الكود تبطيء من آداء استدعاء البيانات

4- ما استطيع تقديمة لك في هذه المشاركة شيئين

 

- نقل المشاركة الي منتدي فيجوال بيسك 6

- تقديم لك مقال ممتاز مقارنة بين الاكسس وبين SQL Server لكي تتخذ قرارك هل ستعمل بالاكسس أم بالــ SQL

 

الاتجاه المعاكس بين MS SQL Server وMS Access

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تم نقل المشاركة لمنتدي فيجوال بيسك 6

========================

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك استاذ محمد

 

                  احب اوضح   شيء انا بالفعل بحاول اتعلم الدونت مع ال sql server

 

          لكن كنت مصمم برنامج كبير وصعبان عليا اللى وصلته واللى عرفتة فى الفيجوال 6

 

     نفس المشكلة حدثت مع الدوت نت 2010   قمت بعمل اتصال مع القاعدة المرفقة ببرنامج جاهز من احد الاخوة

وقمت بتجربة البرنامج علشان اقدر احدد الفرق بين سرعة الدوت نت والفيجوال 6   نفس المشكلة بطيء فى فتح الفورم وعرض البيانات

 

      اريد معرفة المشكلة    مشكلة بطيء عرض البيانات والتعامل مع البرنامج   

 

المشكلة ظهرت فى فيجوال 6   والدوت نت 2010

 

وعملت ضغط واصلاح للقاعدة ونفس المشكلة

 

يوجد دروس كثيرة لكن نريد دروس عن افضل الطرق فى كتابة الكود والطرق الاحترافية

 

 

وحلول المشاكل

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

ام انتقل للغة اخرى

 

وشكرا لحضرتك مرة اخري

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

1- دعنا نتفق ان سرعة تحميل البيانات تعتمد علي عدة عناصر

العنصر الاول :- اتخاذ القرار لاستخدام قاعده البيانات المناسبة

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

 

العنصر الثاني هو :- نوع قاعدة البيانات المستخدمة 

وهو يعتمد بشكل كبير علي قوه Database Engin في استدعاء البيانات والاكسس أضعف بكثير عن برنامج SQL في هذه النواحي أيضا أتمني ان تكون قرأت المشاركة التي أرفقتها لك لتعرف الفروقات بنفسك بين البرنامجين

 

العنصر الثالث :- هو حجم البيانات التي تقوم باستدعائها في المرة والواحدة

فمثلاً اذا كنت تستدعي 1000,000 سجل من قاعدة البيانات لعرضها مثلا في DataGridview دفعة واحدة فالطبع ستلاحظ بطيء في تحميل الشاشة حيث ان عدد السجلات المستدعي كبير جداً ويحتاج وقت لاستدعائة سواء

أنت تعمل علي SQL أو Access لكن طبعا الاخير سيكون آداءة أيضا أقل من الاول 

 

العنصر الثالث :- الاستخدام الحلول البرمجية المناسبة لاستدعاء البيانات بشكل سريع

علي سبيل المثال لا الحصر

1- استدعاء 1000,0000 باستخدام DataReader يأخذ وقت طويل جداً لانه يستعدي سجل سجل

2- استخدام DataTable في استدعاء البيانات جيد جداً في استدعاء عدد كبير من البيانات دفعة واحدة لكن أيضا لكل شيء حدود

3- اذا كان الامر مستمر في البطيء باستخدام DataTable فسيستوجب علينا استخدام شيء آخر لتقليل زمن تحميل الفورم وهو Paging داخل DataGridview

واستخدام Paging باختصار عبارة عن عرض البيانات في صفحات بحيث يستدعي البرنامج مثلا أول 1000 سجل ثم نضغط علي Next لعرض الــ 1000 الذي يليهم وهكذا

حتي نصل الي العدد 1000,000

ولمزيد من المعلومات عند هذه الطريقة اتمني الاطلاع علي هذه المشاركة

معلومة ::: طريقة عمل Paging للداتا جريد فيو

 

4- ايضا استخدام الاجراءات المخزنة Stored Procedure داخل SQL Server يعطينا أفضل آداء في التعامل مع البيانات

 

وأخير مراعاه هذه العناصر وقت تصميم البرنامج ان شاء الله يأتي بثمار جيده عندما يمتليء البرنامج ببيانات كثيرة

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

 

بالتوفيق

تم تعديل بواسطه محمد فؤاد تركي
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم...

 

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

 

1. لا تعمل على تحميل جداول بأكملها في الذاكرة. دائماً استعمل Query مع جملة SELECT للوصول فقط إلى السجلات التي تلزم المستخدم. الأمر ينطبق أيضاً على الحقول (Fields).

2. رأيت عند معظم المبتدئين أنهم يقوقمون بفتح الجدول بأكمله (ما يعني تحميل كامل الجدول في الذاكرة) لمجرد إضافة أو تعديل أو حذف سجل واحد أو سجلات قليلة (باستعمال AddNew مثلاً). و هذا بالطبع خطأ. استعمال الـ Commands لعمليات الإضافة و التعديل و الحذف دون الحاجة إلى فتح الجدول أصلاً.

3. أغلق أية مجموعة سجلات (RecordSet) لم تعد محتاجاً إليها، و خاصةً إذا كانت كبيرة الحجم.

4. واحد من الأخطاء الكبيرة هو استعمال الحلقات لأداء عملية معينة على مجموعة من السجلات!!! الحلقات سيئة جداً في هذه الناحية. بدلاً من ذلك استعمل Command مع تمرير شروط معينة للتعديل أو الحذف... إلخ.

 

نرجو الاستفادة و السلام.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

                اولا اشكرك  جدا جدا استاذ محمد على متابعتك لحل المشكلة

    

                ردك سوف يضاف الى معلومات الكثيرةوالكثير وسوف احاول إن شاء الله اتعلم المذيد من الطرق للحصول على اداة افضل

 

                بعد توجيهات حضرتك ومعلوماتك القيمة -  ربنا يذيدك علم ومعرفة ويكرمك فى حياتك وعملك

       شكرا جدا لحضرتك

 

============================

     استاذ  Najy   ربنا يذيدك علم ومعرفة ويكرمك فى حياتك وعملك

 

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

 

شكرا جدا على اثارة تلك الملحوظات

 

      وسوف ابحث عن الطرق التى ذكرتها لبناء البرنامج

 

   احنا بجد محتاجين من الخبراء مثلكم بطرح بعض الملحوظات والافكار لتصميم البرامج كى تعمل بصورة افضل  وتفادي بعض المشاكل

 

والطرق والافكار لم تاتى الا من خلال العمل والاحتكاك بسوق العمل - ونحن نفتقد ذلك

 

برجاء مساعدتنا ببعض الطرق الافضل باستخدام الاكواد

 

 

     شكرا لكل من ساهم فى حل مشكلتى  وشكرا جدا للمنتدى العظيم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .