![]() |
|
[C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو (/showthread.php?tid=47497) الصفحات:
1
2
|
حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - بلال بلال - 17-11-23 كود : OleDbDataAdapter Cmd = new OleDbDataAdapter("select * from TableName", Con);لقد لاحظت بأن هناك بطء شديد بنقل البيانات من جدول أكسس إلى داتا غريد فيو وخاصة عندما أصبح عدد الصفوف قد تجاوز 3000 أنا أستخدم الكود التالي : السؤال الأول : هل هذا طبيعي بسبب كثرة البيانات ؟ السؤال الثاني : هل الداتا غريد غير مهئ لذلك ؟ وما البديل ؟ السؤال الثالث : إذا كانت المشكلة بالكود ، هل يوجد كود ينقل البيانات بوقت أقل ؟ أشكر رحابة صدركم
RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - anasalhashidi - 17-11-23 (17-11-23, 02:05 PM)بلال بلال كتب : اهلا اخي حدثت معي المشكله هاذي من قبل السبب في DataGridView اضبط عرض الاعده الخاصه بالشبكه لاتجعلها fill RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - justforit - 17-11-23 استخدم اكواد التصفح http://vb4arb.com/vb/thread-45920.html http://vb4arb.com/vb/thread-24607.html RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - sniper2030 - 18-11-23 وعليكم السلام ورحمة الله وبركاته البطء في نقل البيانات يمكن أن يكون نتيجة لعدة عوامل. فهرسة الجداول: تأكد من وجود فهارس على الحقول التي تقوم بالبحث عنها في جدول Access. فهرسة الحقول المستخدمة في العمليات البحث تساعد في تسريع استرجاع البيانات. استخدام استعلام محدد: في حال كان لديك فقط الحاجة إلى جزء صغير من البيانات، يمكنك استخدام استعلام SQL لتحديد الحقول التي تحتاجها بدلاً من استرجاع جميع البيانات. تحسين استخدام الذاكرة: قد تكون المشكلة في استخدام كبير للذاكرة. يمكنك تقليل استخدام الذاكرة باستخدام DataReader بدلاً من DataAdapter في حال كانت البيانات كبيرة. تحسين الواجهة: في حال كنت تعمل بالفعل على تحسين استخدام الذاكرة ولا تزال هناك بطء، يمكنك محاولة تحسين عرض البيانات في DataGridView. قد تكون هناك طرق لتحسين عمليات العرض، مثل استخدام تحميل تأجلي أو تخصيص عمليات العرض. استخدام خيوط منفصلة: في حال كنت تقوم بتنفيذ العملية في خيط رئيسي، يمكنك استخدام خيط منفصل لتنفيذ العمليات البطيئة لتجنب تعليق واجهة المستخدم. استخدام البيانات المتزامنة: في بعض الحالات، قد يكون من المفيد استخدام مكتبات متزامنة لتحسين أداء عمليات البيانات الكبيرة. RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - بلال بلال - 18-11-23 (17-11-23, 05:44 PM)anasalhashidi كتب :شكرا لك أخي على هذه الملاحظة القيمة وقد ألغيت ال Fill وقد تحسن الوضع قليلا .(17-11-23, 02:05 PM)بلال بلال كتب : (17-11-23, 06:07 PM)justforit كتب : استخدم اكواد التصفح شكرا لك أخي على هذه الروابط المهمة وسأستفيد منها إن شاء الله RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - بلال بلال - 18-11-23 (18-11-23, 01:28 AM)sniper2030 كتب : وعليكم السلام ورحمة الله وبركاتهأخي الكريم لقد فهمت أول نقطتين ولكن لم أفهم النقاط التالية : 1- تحميل تأجيلي و تخصيص عمليات العرض 2- إستخدام خيوط منفصلة 3- مكتبات متزامنة هل من الممكن توضيحها لي لو سمحتم ؟
RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - justforit - 18-11-23 (18-11-23, 03:25 PM)بلال بلال كتب : أخي الكريم لقد فهمت أول نقطتين اسمح لي بالمشاركة و ليسمح لي الاخ صاحب المشاركة اللتي اقتبستها بمشاركتك. ساكتب مااعرفه حول هذا الموضوع: تحتاج: كود تصفح البيانات. استخدام المسارات المتعددة . ان كنت مبتديء فانصحك بالدورات اللتي تشرح الاساسيات. مثل قناة قواعد البيانات معها VB.NET and Access ربط فيجوال بيسك واكسس RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - بلال بلال - 18-11-23 (18-11-23, 05:06 PM)justforit كتب :(18-11-23, 03:25 PM)بلال بلال كتب : أخي الكريم لقد فهمت أول نقطتين شكرا لك على مرورك أخي وبارك الله بك ، أنا مبتدئ ولكن قطعت مراحل ممتازة وينقصني الكثير للتعلم ، ولكن كان قصدي أن يشرح لي الأخ أو يوضح لي ما تعني هذه العبارات ، كي أقوم بالعمل عليها ، لأن هناك الكثير من المصطلحات التي يفهمها المبرمجين المحترفين نحن المبتدئين لا نفهمها . كنت أود أن يوضحها لي بإختصار كي أبحث عن الكودات الخاصة بها ، ولعلها معي وأنا أهملها . الشكر موصول لكما
RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - justforit - 18-11-23 (18-11-23, 08:42 PM)بلال بلال كتب : شكرا لك على مرورك أخي وبارك الله بك ، أنا مبتدئ ولكن قطعت مراحل ممتازة وينقصني الكثير للتعلم ، ولكن كان قصدي أن يشرح لي الأخ أو يوضح لي ما تعني هذه العبارات ، كي أقوم بالعمل عليها ، لأن هناك الكثير من المصطلحات التي يفهمها المبرمجين المحترفين نحن المبتدئين لا نفهمها . اخي الكريم ذكرت المقصود في مشاركته في مشاركتي . لو ترفع مثال بسيط نعدل عليه وترى كيف يكون او تكون صياغة الاكواد بنحو يخفف الحمل على الكمبيوتر ويكون عرض البيانات اخف و بنقرات متتالية كل نقرة تعرض كمية بسيطة غير اللتي تم عرضها الى ان تنتهي الكمية الكلية. المسارات المتعددة اسمها بالانجليزي MultiThreads RE: حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو - بلال بلال - 18-11-23 (18-11-23, 08:54 PM)justforit كتب :أخي الكريم هذا هو الكود الذي أستخدمه وهوي بسيط للغاية ويعمل بشكل ممتاز في نقل البيانات من أكسس إلى داتا غريد فيو ، ولكن عندما تصبح البيانات كثيرة جدا يصبح إستدعاء البيانات أكثر بطأ ، إذا سألتني لماذا أريد أن أستدعي كل البيانات وإستعراضها يمكنني أن أجاوبك بأنني لو أريد أن أستدعي بيانات لشهر واحد فقط من مبيع مني ماركت فتكون نتيجة المبيعات بالآلاف لذلك أضطر إلى إستدعاء هذه البيانات الضخمة ، مع العلم يمكنني أن أستعمل البحث عن أصناف محددة وتقليل البيانات ولكن هذا ليس المطلوب , الكود هو :(18-11-23, 08:42 PM)بلال بلال كتب : شكرا لك على مرورك أخي وبارك الله بك ، أنا مبتدئ ولكن قطعت مراحل ممتازة وينقصني الكثير للتعلم ، ولكن كان قصدي أن يشرح لي الأخ أو يوضح لي ما تعني هذه العبارات ، كي أقوم بالعمل عليها ، لأن هناك الكثير من المصطلحات التي يفهمها المبرمجين المحترفين نحن المبتدئين لا نفهمها . OleDbDataAdapter Cmd = new OleDbDataAdapter("select * from TableName", Con); DataTable dt = new DataTable(); Cmd.Fill(dt); DataGridView_Name.DataSource = dt; ملاحظة : لقد جربت أيضا ربط الداتا غريد فيو بالداتا سيت مباشرة وكانت النتيجة أفضل وأسرع : this.basicsRequestsTableAdapter.FillBy(this.requestsDataDataSet.BasicsRequests); ولكن بهذه الطريقة سيظهر لدي مشكلة أخرى وهي إنشاء FillBy لكل نوع بحث ولكل عامود ، ولست ضليعا فيها ، لذا أجد كتابة الكودات أكثر مرونة ولدي القدرة على التركيب متداخل بها . |