![]() |
|
بطء شديد في جملة UPDATE - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : بطء شديد في جملة UPDATE (/showthread.php?tid=11006) الصفحات:
1
2
|
بطء شديد في جملة UPDATE - samnaj00 - 15-08-2020 السلام عليكم ورحمة الله وبركاته السادة الكرام لدي جدول1 فيه اعمدة (رقم المادة-اسم المادة -رصيد المادة) ID_PROD-NAME_PROD-RASEED (عدد المواد 100) جدول2 فيه اعمدة (رقم المادة-الكمية) ID_PROD-QTY (عدد السجلات 14000 سجل) لكي احصل على رصيد كل مادة ووضعه في جدول1 . كتبت جملة ال update التالية: كود : update Table1 set raseed = (select sum(Table2.qty) from Table2 where Table1.id_prod = Table2.id_prod)الكود يعمل بشكل جيد لكن المشكلة في بطء النتيجة (10ثواني تقريباً) وهذا يعد عيباً كبيراً كوني محاسباً واعمل على برنامج محاسبة بقاعدة بيانات برادوكس و1800 مادة و14000 سجل والامر لايستغرق كبسة الزر فقط جربت قاعدة بيانات absolute و bde و access والنتيجة واحدة فهل من حل اخر للحصول على الرصيد والتقليل من الوقت RE: بطء شديد في جملة UPDATE - samnaj00 - 17-08-2020 السلام عليكم للاسف يعتري هاذا المنتدى شيء من الخمول مع وجود مبرمجين محترفين وخبرات سنوات عديدة . لم أر رداً واحداً - تابعت التجربة على قاعدة بيانات sql server وكانت النتيجة ممتازة . ألفان ومئتا مادة مع عشرين الف سجل للمواد .ظهرت النتيجة بكبسة زر لكن ارجع واقول كوني محاسباً واعمل على برنامج محاسبة بقاعدة بيانات برادوكس و1800 مادة و14000 سجل للمواد والامر لايستغرق كبسة الزر فقط بانتظار الاحبة RE: بطء شديد في جملة UPDATE - h-farid - 17-08-2020 و عليكم السلام و رحمة الله و بركاته لما لا تستعمل حقل حسابي (CalculatedField) و تستغني عن تعليمة الـ Update. شيء مثل : كود : SELECT Table1.ProdID, Table1.ProdName, Sum(Table2.Quantity) AS TotalQuantity FROM Table1 INNER JOIN Table2 ON Table1.ProdID = Table2.ProdID GROUP BY Table1.ProdID, Table1.ProdName;RE: بطء شديد في جملة UPDATE - samnaj00 - 17-08-2020 (17-08-2020, 10:50 AM)h-farid كتب : و عليكم السلام و رحمة الله و بركاته استاذي الكريم جزاك الله خيراً هذا ينفع في حال اردت اظهار البيانات والمجاميع فقط دون تعديل او اضافة لكن الجدول الاول فيه (اضافة -تعديل ) مباشرة هل يمكن تعديل جملة الاسكيول لكي يتم تطبيقها على عمود رصيد المادة؟ RE: بطء شديد في جملة UPDATE - محمد عبد العزيز - 17-08-2020 و عليكم السلام و رحمة الله و بركاته أكتب الكود الكامل المستعمل وليس فقط جملة الإستعلام (إن أمكنك إرفاق مثال لكان أحسن) حتى يمكن توجيهك لمكان الخلل. RE: بطء شديد في جملة UPDATE - samnaj00 - 17-08-2020 (17-08-2020, 12:54 PM)B.M.AbdelAziZ كتب :لا يوجد سوى هذه الجملة فقط كود : update daleel_prod set raseed = (select sum(prod.qty_in) from prod where daleel_prod.id_prod = prod.id_prod)لم تعمل جملة sql لقاعدة بيانات اكسس طلب عمل استعلام تحديث في المرفقات نموذجين (bde - absolute ) مع exe - ضع المجلدين في القرص c RE: بطء شديد في جملة UPDATE - sofiane201 - 17-08-2020 وعليكم السلام ورحمة الله إطلعت على المشروع الذي استخدمت فيه Absolute DB, فوجدت بعض النقائص مثل:
جربت نفس مثالك على قاعدة ب SQLite, والفارق كبير جدا في السرعة, لم يأخذ أكثر من ثانية ونصف عندي حتى بدون استخدام فهرس. للعلم جربت المثالين خارج Rad studio, يعني واحدة داخل sqlite, والاخرى Absolute DB Manager حتى يتبين ان البطئ ليس من مكونات الاتصال. الحل: غير قاعدة البيانات, حاول الالتزام بأساسيات SQL في انشاء الجداول. RE: بطء شديد في جملة UPDATE - samnaj00 - 18-08-2020 استاذي الكريم سفيان
جزاك الله كل خير على المشاركة
(17-08-2020, 09:27 PM)sofiane201 كتب : ماهو المفتاح الخارجي ؟ (17-08-2020, 09:27 PM)sofiane201 كتب : جربت نفس مثالك على قاعدة ب SQLite, والفارق كبير جدا في السرعة, لم يأخذ أكثر من ثانية ونصف عندي حتى بدون استخدام فهرس. ذكرت في مشاركاتي أني جربت على sql server وكانت النتيجة بكبسة زر فقط مع 2000 في daleel_prod و20000 سجل في prod (17-08-2020, 09:27 PM)sofiane201 كتب : الحل: غير قاعدة البيانات, حاول الالتزام بأساسيات SQL في انشاء الجداول.يمكن تغيير قاعدة البيانات لكن الذي يدفعني للبحث عن حل بدلاً من تغيير القاعدة . هو مثال حي لدي وهو برنامج محاسبة اعمل عليه بقاعدة برادوكس دلفي7 وبأقل من ثانية يتم تحديث الرصيد أكيد يوجد طريقة معينة لذلك . والله أعلم RE: بطء شديد في جملة UPDATE - محمد عبد العزيز - 18-08-2020 جرب المرفق مع مثال Absolute لاحظ الفرق بعد اضافة دليل Index للجدول الثاني RE: بطء شديد في جملة UPDATE - samnaj00 - 18-08-2020 (18-08-2020, 01:35 PM)B.M.AbdelAziZ كتب : جرب المرفق مع مثال Absoluteجزاك الله خيراً استاذي الكريم انخفضت المدة الى الثلث تقريباً قمت باضافة فهرس للجدول الاول لكنه لم يتغير شيئ هل من طريقة ثانية لتقليل الزمن ؟؟ |