السلام عليكم ..
كنت اتسائل, ايهما افضل, ان نعتمد في معالجة المعلومات واجراء المعادلات عليها على جمل SQL التي تنفذ من خلال قاعدة البيانات, ام استرجاع البيانات كما هي ثم معالجتها عن طريق الكود داخل البرنامج ؟
ما رأيكم ؟
دائما يحتج من يستخدم stored procedures بأنها أسرع لأنها تنفذ من خلال قاعدة البيانات ويتم تنفيذها بأفضل الطرق ويتم استخدام الكاشنق ولكن هذا كان في نسخ قواعد البيانات القديمة أما الجديدة فيتم استخدام الكاشنق حتى من خلال sql من داخل الكود.
أعتقد ان المسألة تفضيل شخصي أكثر من كونها لها علاقة بسرعة تنفيذ الكود أو كفاءته.
جرب البحث عن Stored procedures vs inline sql
وهذا مقال جيد في هذا الخصوص:
أتعامل مع أحد أنظمة ERP حيث يعتمد مبدأ العمل والمعالجة فيه على الأكواد البرمجية بينما يتم التعامل مع قاعدة البيانات على استرجاع البيانات فقط كما قاموا بتفيعل نظام الكاشينج لضمان الاسترجاع السريع للبيانات وفتح الشاشات.
الميزة هي السرعة في استرجاع البيانات وتخفيض الحمل على أنظمة قواعد البيانات مما يجعلها مناسبة للعمل على الشبكة حتى لو كانت الشبكة لا تدعم نقل حجم كبير من البيانات.
العيب الذي لاحظته ولا زلنا الى الان نرفع بتقارير اصلاحات فيه أن يجب مراقبة Constraints بشكل كبير لأنه في بعض الاحيان يحصل بعض الاخطاء في حفظ واسترجاع البيانات.
التعليقات