easyDelphi Q&A
+1 تصويت
58 مشاهدات
اقوم ببناء بنية DataAccess شبيهة بالعمل ك MVC

ولكن عند تحميل البيانات من قاعدة البيانات قمت ببناء كل Field في كل Record كصف يتم إنشاؤه عند انشاء ال Module وتدميره قبل تدمير ال Module ولكن هذا العمل سيكلف الكثير من الزمن والكثير من الذاكرة خاصة مع البيانات الكبيرة.

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

افيديونا في تجاربكم

شكرا.
سُئل في تصنيف vcl بواسطة (2,000 نقاط) | 58 مشاهدات
 
كصف؟ قصدك ككلاس (صنف)
صف يعني سطر في مصفوفة
اقصد بصف هو كلاس في دلفي اقوم ببناء منه اوبجيكت يحتوي على معلومات هذا الفيلد  من اسم وقيمة

1 إجابة واحدة

0 تصويتات
انشاء الكلاس ليصبح لدينا object منه ليس له كلفة كبيرة، مالم يكن هنالك عمليات ضخمة عند الانشاء
طريقة تعبئة الكلاس (ال class) هي المسؤولة عن البطيء، اذا كانت اسناد عادي من حقل لل Property لا اعتقد انه سيكون هنالك بطيء كبير

اذا كنت تضع كافة السجلات في مصفوفة، قم بالاحتفاظ بالحقل Field و احرص على عدم استدعاء FieldByName بكثرة

يعني استعمل FieldByName مرة واحدة لكل حقل و اسند نتيجتها إلى متحول MyField:Tfield ثم استعمل MyField ضمن الحلقة.
تم الرد عليه بواسطة (11,920 نقاط)
هذا ما اقوم بفعله تقريبا ولكن اريد الأفضل والأقل كلفة زمنيا وفيزيائيا
أن كنت أريد تحميل معلومات من جدول في قاعدة البيانات وإنشاء اوبجيكتس تتضمن هذه المعلومات
وكان عدد السجلات المحملة مليون سجل مثلا
فأعتقد أن عملية انشاء الاوبجيكتس بالإضافة إلى إسناد القيم ستتجاوز ال ٥ دقائق

لهذا ابحث عن الأفضل.
وضع البيانات في كلاس لا يكلف كثيرا مالم يكن هذا الكلاس كارثي، فعليا هي فكرة جيدة، المصفوفة الضخمة هي التي ستستهلك الذاكرة، وهي التي يجب ان تقرر ان تستعملها ام لا
الفكرة الأخرى اللي عم فكر فيها بأنو حمل كل شي مطلوب من الجدول ك JSON وعند الحاجة ابني اوبجيكتس للبيانات المطلوبة بس ما حسبت حساب العواقب
لهيك قلت أسأل عن تجارب غيري في هذا الموضوع
ان كان JSON او XML هذه مكلفة جدا
لماذا تريد تحمل كم كبير من البيانات للذاكرة، الامر غير منطقي من الاصل
الخطوات انه تحميل الكم المطلوب من السجلات وحجزه في متحول ما من نوع String ك JSON أو xml سيكون مكلف للذاكرة في البدئ
ولكن من جهة أخرى سيسرع عملية انشاء ال objects بحيث يتم حساب الحجم الكلي المطلوب لهلذه ال objects وحجزها دفعة واحدة في الذاكرة بدلا من القيام بانشائها في حلقة تكرارية واحدا تلو الاخر
ومن ثم يمكنني تفريغ المتحول الحاوي على السجلات.
ما تعليقك على الموضوع استاذ زاهر؟
عند بلحظة من الزمن، بنفس اللحظة، مليون سجل محتفظ فيه بشكل نصي، و مليون سجل محتفظ فيهم بشكل binary Objects
و لسبب مجهول لااعرف الدافع له،
كيف سيسرع؟!، اضافة النص string بنفس سرعة و اضافة object اصلا ال string هو نوع  من انواع object

اسئلة متعلقة

+2 تصويتات
1 إجابة
سُئل أكتوبر 27 في تصنيف vcl بواسطة youcef (240 نقاط) | 36 مشاهدات
+4 تصويتات
2 إجابة
سُئل أغسطس 30 في تصنيف vcl بواسطة Ammar Salah (2,000 نقاط) | 42 مشاهدات
+6 تصويتات
3 إجابة
سُئل يونيو 27 في تصنيف Delphi بواسطة مجهول | 190 مشاهدات
0 تصويتات
1 إجابة
سُئل نوفمبر 27 في تصنيف vcl بواسطة MohammedAmine (330 نقاط) | 25 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

282 سؤال
487 إجابة
866 تعليق
177 مستخدم