منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
هل توجد طريقة أسرع و أسهل للبحث داخل قاعدة بيانات مرفوعة على سيرفير خارجي - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : هل توجد طريقة أسرع و أسهل للبحث داخل قاعدة بيانات مرفوعة على سيرفير خارجي (/showthread.php?tid=4350)



هل توجد طريقة أسرع و أسهل للبحث داخل قاعدة بيانات مرفوعة على سيرفير خارجي - خالد الشقويري - 22-09-12

السلام عليكم
الأخوة الكرام أعضاء المنتدى الحبيب

بأختصار شديد
قمنا بتصميم برنامج وقاعدة البيانات sql مرفوعة على سيرفير خارجي

البرنامج عبارة عن برنامج مخازن و مبيعات و مشتريات
عدد الأصناف المسجلة تجاوز ال 5000 صنف
لكل صنف سجل حركة من مبيعات و مشتريات و تحويل بين الفروع متوسط 25 حركات
أصبح لدينا حوالي 125000 سجل للحركة

ويوجد لدينا حوالى 10 فروع للمؤسسة

عند الرغبة في عمل جرد للأصناف يقوم البرنامج بقراءة جدول الأصناف " 5000 صنف "
و يقوم بالبحث عن كل صنف بمعرفة رقمه ورقم الفرع المباع أو المشترى منه " 10 فروع "
ويتم البحث بمعلومية رقم الصنف و رقم الفرع في جدول حركة الصنف " 125000 حركة "
و بذلك نقوم بعملية الأستعلام 50000 مرة " خمسون الف مرة "

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

سؤالي للأخوان عن الطريقة المثالية لعمل جرد للأصناف في الحالة السابقة
و هل الأسهل تحميل جدول حركة الصنف الى dataset
ثم نقوم بعمل باقي الأستعلامات عليها
مع شرح مبسط لكيفية عمل أستعلام داخل ال dataset وليس الجدول

أم الأفضل أستخدام LINQ TO DATASET
و أيهما أسرع


ولكم مني جزيل الشكر و التقدير



هل توجد طريقة أسرع و أسهل للبحث داخل قاعدة بيانات مرفوعة على سيرفير خارجي - amgadtamer - 23-09-12

PHP كود :
هذه دالة تقوم باستخدام الاجراءات المخزنة وايضا datareader لتعبئة النتائج في datatable



Function GetDatatable() As DataTable
        Dim con 
As New SqlConnection("connection string")
        
'على فرض ان الاستعلام عبارة عن إجراء مخزن لأنه أسرع من الأستعلام العادى
        Dim cmd As New SqlCommand("storedprocedure", con)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Connection = con
        Dim dt As New DataTable
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        Dim reader As SqlDataReader = cmd.ExecuteReader
        dt.Load(reader)
        Return dt


    End Function