عندي موقع صممته بلغة الasp لكني يوجد مشكلة به وهي انة عند تحميلة بيانات داخل الداتا بيز يكون بطيئ مع ان الموقع سريع في عرض الصفحات فكيف بإمكاني تسريعة
وشكراً
ابو علاء
عندي موقع صممته بلغة الasp لكني يوجد مشكلة به وهي انة عند تحميلة بيانات داخل الداتا بيز يكون بطيئ مع ان الموقع سريع في عرض الصفحات فكيف بإمكاني تسريعة
وشكراً
ابو علاء
السلام عليكم
سؤالك واسع جداً و يحوي الكثير من الاحتمالات طالما أن السيرفر سريع أساساً:
إذا كنت تتكلم عن سرعة في عرض بيانات الداتا بيز من خلال ASP فقد يكون السبب هو صفحات الـ HTML التي تعرض البيانات، و قد كان هناك الإرسالية على هذا تعرضت لمثل هذا الموضوع في بطء الموقع من جداول أو صور أو وصلات من مواقع بطيئة (مثلاً برامج تبادل الإعلانات و ماشابه)
أو قد يكون السبب في برمجة الـ ASP نفسها فيجب التأكد من منطقيتها أولاً، ثانياً التأكد أن جميع الاتصالات لقواعد البيانات يتم إغلاقها في نهاية استخدام الكود
أما إذا كنت تتكلم أن الموقع كان سريعاً ثم أصبح بطيئاً بعد كثرة البيانات على قاعدة البيانات فقد يكون السبب هو استخدامك لـ MS Access و قد يكون الأفضل التحويل إلى SQL لزيادة السرعة (وهذا لا يعني أن SQL أسرع و لكنه أكثر فاعلية مع بيانات كبيرة)
هذه أهم الأسباب في رايي الشخصي و هو الذي خطر في بالي للآن
تم تعديل هذه المشاركة بواسطة محمد القربي في 23 سبتمبر 2004 في 01:17
Mohamad Al-Karbi
أحيانا يكون عدد الويب سايت على السيرفر أصبح كبير فبعض شركات الاستضافة تضع أكثر من 400 موقع على السيرفر الواحد مما يزيد العبء على السيرفر نفسه و بالتالي يصبح معدل نقل البيانات بطىء
تم تعديل هذه المشاركة بواسطة mass_599 في 23 سبتمبر 2004 في 04:28
أوافق أخي mass_599 فهذه نقطة هامة. و شركات الاستضافة المحترمة تراعي مثل هذه الأمور...
Mohamad Al-Karbi
شكرا اخواني mass_599 و محمد القربي على هاذا الرد الجميل
ابو علاء
أيضا في عمليات ال Data Access من خلال تقنية ال ASP هناك فرق بالسرعة حسب طبيعة الكود فال ADO توفر أسرع الحلول كالتالي :
"لاحظ الفرق في كود الإدخال مع العلم ان الثاني أسرع"
1.
cn.execute("INSERT into TBL(name,email)values('"& strName&"','"&strEmail&"')")
2. ADO pure solution // more faster
Set rs=createObject("ADODB.RecordSet")
SQL="SELECT * FROM TBL"
rs.Open SQL,connObj,3,3
rs.AddNew
rs("name")=strName
rs("email")=strEmail
rs.Updateشيء اخر يعود لقواعد البيانات ..
ال MS Access جيدة نوعا ما للتطبيقات الصغيرة و نادرا للمتوسطة لسبب واحد مهم قد يجهله البعض و هو أن ال MS Access لا توفر دعما كاملا لل Concurrent Data Access أي لا توفر دعما كاملا للتعامل مع البيانات سواء عرض أو إدخال أو حذف أو تعديل لعدد من المستخدمين .. مثلا .. قد نرى تطبيقا على الانترنت يقوم من خلاله المتصفح بعرض منتجات و يكون طبيعيا جدا في سرعة عرض البيانات و هي سرعة إرجاع البيانات من السيرفر المجيب لطلب المستخدم و لكن عندما يتواجد عدد من المستخدمين في نفس الوقت و عادة بال MS Access يكونوا 4 زوار و ما فوق سوف يظهر بطء شديد قد يؤدي إلى إنهيار التطبيق و هذا ما لا نراه في ال MS SQL و التي يديرها ال SQL Server 2000 كنظام متكامل لإدارة قواعد البيانات DBMS حيث يدعم تداخل البيانات و يستطيع تحمل ضغط الزوار ..
بالتوفيق جميعا ..
You can fly while you can touch the sky
تعليق بسيط ..
بعض العمليات تحتاج لغلق قاعدة البيانات منعا لحدوث ال Dead Lock و هي نقطة توجه لها الأخ محمد القربي حيث عليك أن تنهي مجموعة السجلات و الإتصال بعد إنهاء كتابة الأكواد لان تركها مفتوحة يسبب ضغطا كبيرا على مناطق الاتصال بالسيرفر Connection Pool و بالتالي تؤثر على موقعك و موقع غيرك الموجود على نفس السيرفر ..
شيء اخر .. هناك بعض التطبيقات مثل عدد زوار الموقع والتي تحتاج لعملية غلق للكائن Application كالتالي :
Application.Lock
Application("visits")=Application("visits")+1
Application.UnLock <--- important pointيظهر من الكود السابق أنه يجب عند اتمام العملية بنجاح إعادة تأهيل و فتح الكائن من خلال ال UnLock و إلا قد يتسبب ذلك في حدوث خطأ و هو انتهاء الزمن اللازم لتنفيذ الكود executing time out شيء كهذا .. و السبب في ذلك يعود إلى أن التطبيق يتم غلقه و يبقى الطرف الاخر الذي طلب نفس الصفحة معلقا في انتظار انتهاء الزائر الأول حتى ينتهي و يتيح له المجال و لكن يتأخر الزائر الأول و يبقى الكائن مغلقا و بعد فترة تظهر رسالة الخطأ للزائر الثاني ..
أعتقد انه بدا ملموسا مقدار عدد الزوار الذين سيعانون من ظهور الأخطاء نتيجة إطالة زمن انتظار الزائر الأول هذا إن فكر الزائر الأول في عمل فنجان قهوة و نسي الصفحة أمامه دون أن يغلقها!!!!
:)
تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 30 سبتمبر 2004 في 05:46
You can fly while you can touch the sky
شكرا اخي محممد ابو صلاح على ردك الجميل
ابو علاء
جزاك الله خيراً أخي محمد خليل على هذا التوسع الجميل في الموضوع. فقد شرحتَ ما عجزتُ عن التوسع فيه. فشكراً جزيلاً.
الأمر الآخر، بعض المراجع الأجنبية ذكرت أن عدد متصفحي الـ MS Access قد يصل إلى 30 بنفس الوقت في حين أن الحد الأقصى لمعدلي بيانات MS Access في نفس الوقت (those who are updating the data in the same time) هو 10 أشخاص... ثم عاد الكتاب ليؤكد أن هذا الأمر ليس دقيقاً فالبعض قد يرى الأقل في حين أن البعض يعتقد أن العدد أكبر.. اعتقد أن المسألة تعود للسيرفر المضيف. ثم ذكر الكتاب أن الـ SQL ليست بالضرورة أسرع و لكنها أكفأ...
Mohamad Al-Karbi
اعتقد أن كلامك صحيح أخي محمد القربي فأنا ردي على اعتماد دراسة قرأتها عن ال DBMS منذ 4 سنوات و وعدت ميكروسوفت بتقديم تحسينات لتطبيقاتها بحيث تلائم تطبيقات الانترنت الصغيرة و المتوسطة و أعتقد أن ما ذكرته انت هو أحد تحسيناتهم التي وعدوا بها .. بالنسبة لي فأنا أعمل على ال MS SQL منذ زمن بعيد و هو فعلا ذو كفائة عالية من عدة جوانب .. العفو للجميع فأنا لم أقم إلا بالواجب و كان ردي تحية لصديق قديم لي بالمنتدى ..
تحياتي للجميع
You can fly while you can touch the sky
أخي محمد، شكرا للرد. لا تعتقد أني خبير، أنا مجرد هاوي، و معرفتي بالـ MS SQL محدودة (فقط لحاجات استخدام بيانات مواقع النت).. وأنا فخور بالتعرف عليك و شكراً مرة أخرى.
Mohamad Al-Karbi
هذا الموضوع مغلق.