الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يوجد حل لملأ الداتاسيت ببيانات قاعدة بيانات تحوي أكثر من 10,000,000 سجل

بدأه dot.net2008 في 24 يناير 2010 · 8 رد · 915 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم روحمة اله وبركاته ,,

هل يوجد حل لهذه المشكلة علماً بأني عندما أقوم بعمل ذلك يحدث (تعليّق) و (تهنّيق) للجهاز والنظام ,,

مع العلم ان الكود صحيح وينفذ اذا كان عد السجلات اقل من ذلك مثلاً 1000 او 2000

هل يوجد حل برأيكم ,, لتلاف مثل هذه الامور المزعجة

وشكراً لكم ..

#2

نظريا أنصحك بالعمل في الوضع المتصل حتى تتمكن من تحميل التسجيلات عددا بعدد لتقوم بالعمل عليها من دون انهاك نظام التشغيل و استنفاذ موارده و لكن هذا يتوقف على طبيعة التطبيق الذي تعمل على تطويره...

بالتوفيق :)

#3

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

#4
محمد رضى كتب:

نظريا أنصحك بالعمل في الوضع المتصل حتى تتمكن من تحميل التسجيلات عددا بعدد لتقوم بالعمل عليها من دون انهاك نظام التشغيل و استنفاذ موارده و لكن هذا يتوقف على طبيعة التطبيق الذي تعمل على تطويره...

بالتوفيق :)

السلام عليكم روحمة الله وبركاته ,, اشكرك اخي الكريم محمد رضى على ردك ولكن عندما قمت بالعمل على الوضع المتصل اتاني هذا الخطأ

اقتباس

ContextSwitchDeadlock was detected

Message: The CLR has been unable to transition from COM context 0x3d6fd0 to COM context 0x3d7140 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

System Down كتب:

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

السلام عليكم ,,

لا احاول عمل اي شيء صدقني :lol:

....

كل مافي القضية اني اريد استعراض سجلات في قاعدة معينة تحوي أكثر من 10,000,000 مليون سجل

واريد ان أظهرها في الداتاغريد فيو ,, مع العلم اني قد جربتها في الوضع المنفصل ولم ينجح الامر بعد الانتظار لأكثر من حوالي 15 دقيقة

اقتنعنا برأي الاخوة الافاضل بالانتقال للوضع المتصل ,, وانتقلنا للمتصل ,, وقمنا بتحويل الكود للوضع المتصل

وأتاني نفس ال error الذي وضعته في الأعلى ,,

بارك الله فيكم , وجزاكم خيراً

تم تعديل هذه المشاركة بواسطة dot.net2008 في 25 يناير 2010 في 15:04

#5

هل ستعرض كل هذه البيانات مرة واحدة؟ طبعاً لا. ستعرضها، لنقل مثلاً، على صفحات من 100 سجل. لذا ما تفعله هو سحب فقط المائة التي ستظهر الآن. و سحب التالية عندما يضغط المستخدم زر "تالي" مثلاً.

#6

قم بعرض السجلات التى تود عرضها فقط بناءاً على شروط محددة و قم باستخدام ال Paging لعرض السجلات ذات الاعداد الكبيرة مثلما ذكر System Down

رسالة الخطأ التى ظهرت لك نتيجة جلب سجلات كبيرة مما سببت Long Running Transaction

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 25 يناير 2010 في 15:30

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7
طارق إبراهيم كتب:

قم بعرض السجلات التى تود عرضها فقط بناءاً على شروط محددة و قم باستخدام ال Paging لعرض السجلات ذات الاعداد الكبيرة مثلما ذكر System Down

رسالة الخطأ التى ظهرت لك نتيجة جلب سجلات كبيرة مما سببت Long Running Transaction

بارك الله فيكم ياشباب ,,

المشكلة يا أخي الكريم انني وبعد وضع شرط على جملة الاستعلام عدد السجلات هو حوالي ال 6,000,000 ,, :blink:

select * from country where name='ahmad'

-----------------

ماهو مبدأ الـ paging ؟؟

تم تعديل هذه المشاركة بواسطة dot.net2008 في 25 يناير 2010 في 16:22

#8

المقصود بالـpaging (أو التصفح) هو أن تقرأ البيانات على أجزاء أو صفحات. تقرأ المائة الأولى مثلاً، ثم عند الحاجة تقرأ المائة التي بعدها.

#9

بارك الله فيكم اخواني الافاضل ,,

وجاري التطبيق ...

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…