إلى أي شيئ يرجع سرعة الاتصال بقاعدة البيانات
#1
السلام عليكم.
في رأيكم إلى أي شيئ يرجع سرعة الاتصال بقاعدة البيانات و جلب المعطيات و تحديثها؟
هل لنوقع قاعدة البيانات في حد ذاتها؟
أم لمكونات الاتصال Firedac Unidac IBX  ADO....
أم ماذا في رأيكم؟  Huh
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#2

وعليكم السلام ورحمة الله وبركاته
اظنك سبق وطرحت نفس السؤال...
هناك أمور كثيرة لا اتذكرها الان، اذكر ما خطر فقط
- مكونات الاتصال، مثلا Unidac احسن/اسرع من FireDac و IBDac تقريبا بنفس سرعة Unidac لكنها احسن في أمور اخرى
- تصميم قاعدة البياتات، كبر حجم الحقول واستخدام Blob بكثيرة يؤثر
- الاستعلامات/ الاستخدام الذكي يزيد من السرعة
- استخدام الاجارائات المخزنة
- اسلوب البرمجة
- مواصفات/مميزات الاجهزة المستخدمة
- عدد المستخدمين
...
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 2 users say قال شكرا ل B.M.AbdelAziZ على المشاركة المفيدة
  • Mrderman, أبو معاذ
الرد
#3

نسيت ما اقوله دائما:
لا تتصل بقاعدة البيانات إلا عند الحاجة
لا تطلب الا ما تحتاج من بيانات، انسى اسلوب فتح كل الجداول
إغلق الاتصال عندما تنتهي
هناك حالات يكون الاتصال للقراءة فقط والحصول على البيانات ثم اتصال اخر للتعديل احسن من اتصال واحد به حصول على بيانات ثم تعديل.
-
استخدام قرص من نوع SSD يحسن السرعة

ملاحظة:
لو كان امامنا كود او برنامج لكان مثال ملموس اكثر من الكلام فقط!
عامة يتم Profilage/Profiling البحث عن سبب بطئ التنفيذ ثم البحث عن حل...
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 2 users say قال شكرا ل B.M.AbdelAziZ على المشاركة المفيدة
  • Mrderman, أبو معاذ
الرد
#4
السلام عليكم
بالنسبة لمكونات الاتصال بعض العوامل المؤثرة
  • هل الاتصال يتم Native (Direct) تغليف لـ Api محرك قاعدة البيانات او عن طريق مكتبات DB Clients كمثال fbclient.dll بالنسبة للـ Firebird.
  • الاعدادات الافتراضية لمكونات الاتصال.
  • الخصائص التي توفرها مكونات الاتصال كلما كانت هناك خصائص كثيرة و هو شيئ جيد قراءة البيانات تقل سرعتها 
قد تجد مكونات اتصال سرعة القراءة تقل بالنسبة لمكون اخر لكن سرعة الكتابة تفوقها
هذا الذي يحضرني الآن
Huh
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 1 user says قال شكرا ل S.FATEH على المشاركة المفيدة
  • أبو معاذ
الرد
#5
وعليك السلام

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

+ سأحاول توضيح بعض الامور :

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

* و الشئ الثاني أساسي و هو كيفية تصميم قاعدة البيانات : نفترض ان لديك قاعدة بينات تخزن جميع البيانات لكل السنوات إذا حجم البيانات صغير فلا تكون هناك أثار جانبية على قاعدة البيانات أثناء البحث أو عطب ، ــ أما إذا حجم البيانات كبير فيأثر مردود الاتصال ، فيلجأ المصممين إلى إشاء كل سنة على حدى مثال : data_2018.fdb ، data2019.fdb ... ، لتفادي التضخم و الاعطاب ، وهذا ليس بالضروري ، هناك SBGD انظمة تسيير قاعدة البيانات قوية مهما كان الحجم و الطلب كـ oracle و MS SQL server و DB2 ..الخ ، بالاضافة قوة الجهاز و نظام المستخدم كمثال windows server و يخص الشركات الكبرى و يكون الاتصال داخلي و خارجي، إذا كان محل تجاري أو شركة مصغرة فجهاز عادي يوفر الطلبات. ، ــ شيئ أخر مهم جدا وهو الحقل من نوع Blob و هو يأثر في سرعة الإتصال الحقل من نوع Blob يمكن تخزين فيه صور أو نصوص و ملفات كالاكسل و الورد .... و حجمها يكون كبير أثناء الاتصال أو الخزين

* الامر الثالث وهو : كيفية الاتصال ، كمثال لدينا قاعدة بيانات تحتوي على 1000 سجل لطلاب و من بين الحقول يوجد حقل صورة لطالب ، سأشرح كسبيل المثال أني أستعمل المكون ADOTable فعند طلب البيانات سيحضر جميع سجلات و هذا يأثر على الاتصال أثناء الطلب للبيانات و يأخذ حجم من الذاكرة ، ــ أما إذا إستعملت ADOQuery فالفرق شاسع و هذا لأننا سنخاطب SGBD نظام تسيير قاعدة البيانات بلغة SQL ، عند الفتح سنختار الحقول بالامر select الاسم و اللقب و تاريخ الزدياد من الجدول from التلاميذ و بعدها ال شرط where وهو قسم السنة الاولى ، إستدعينا ما نحتاج فقط و ستثنينا الصور لتفادي بطئ الاتصال ، ملاحظة إذا إتصلنا بـ ADOQuery وقمنا بإستداء جميع الحقوق دون شرط كأننا نستعمل ADOTable ، ــ شئ أخر مهم لا نتغاضى نظر عنه و هو الحقول الحسابية ، يمكن بلغة SQL طلب حساب الكمية ضرب السعر ، سيقوم SGBD نظام تسيير قاعدة البيانات بالحساب ثم إرسال الطلب.

* ملاحظة : في وقت سابق لما درسنا عند تصميم قاعدة البيانات يجب مراعات الحجم قاعدة البيانات، مراعات طول الحقل , تفادي التكرار ، العمل بجداول الاب و الابن

في الوقت الحالي حجم البيانات لم يعد مهما و الأجهز القوية متاحة للجميع ، فالشركات الكبرى باتت تسجل كل كبيرة و صغيرة على المستعمل كفيسبوك و قوقل بخورزميات معقدة يعرفون توجهك و سلوكات وبايتنبئون حسابيا ما هي رغاباتك و يستغلونها تجاريا

-- اتمنا لو أنني أفدتك ولو بالقليل --
[-] كل من 1 user says قال شكرا ل larbiparadox على المشاركة المفيدة
  • أبو معاذ
الرد
#6
جزاكم الله خيرا على التفاعل مع الموضوع.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف