تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] بطئ جلب البيانات في داتا جرد فيو
#1
السلام عليكم
لدي قاعدة بيانات 
واجلب كامل اللي بها حوالي 3000 او يزيد
وعند الفتح يتم التحميل ببطئ
حوالي 20 ثانية
كود :
Public Sub LoadAllQuick_Sale()
       DgvQuick.Rows.Clear()
       con = New SqlConnection(cs)
       If con.State = 1 Then con.Close()
       con.Open()
       cmd = New SqlCommand(" Select * from QuickSale_Tbl ", con)
       rdr = cmd.ExecuteReader
       While rdr.Read()
           DgvQuick.Rows.Add(rdr("Sale_ID").ToString, rdr("Order_ID").ToString, Convert.ToDateTime(rdr("OrderDate")).ToString("dd/MM/yyyy"), rdr("CustomerName").ToString, rdr("Total").ToString, rdr("Tax_Value").ToString, rdr("Discount_Value").ToString, rdr("FinalTotal").ToString)

       End While
       rdr.Close()
       con.Close()
       Load_Totals()
   End Sub
الرد }}}
تم الشكر بواسطة:
#2
عند جلب عدد كبير من السجلات (مثل 3000 سجل أو أكثر) في تطبيق فيجوال بيسك (VB)، يمكن أن يؤدي ذلك إلى بطء في الأداء. لتحسين سرعة التحميل، يمكن اتباع هذه النصائح:

1. تقليل البيانات المعروضة عند التحميل الأولي
بدلًا من جلب جميع السجلات دفعة واحدة، قم بجلب مجموعة صغيرة من السجلات (مثل أول 50 أو 100 سجل) وعرضها في البداية. يمكن استخدام تقنية Pagination أو التقسيم إلى صفحات.
مثال:
vb
نسخ الكود
كود :
Dim sqlQuery As String = "SELECT TOP 100 * FROM TableName ORDER BY ID"
ويمكنك تعديل الاستعلام لاحقًا لجلب الصفحة التالية عند طلب المستخدم.

2. استخدام الفهرسة في قاعدة البيانات
تأكد من أن الحقول المستخدمة في البحث أو التصفية (مثل الحقول التي يتم فرزها أو البحث بها) تحتوي على فهرسة (Index). هذا يمكن أن يحسن سرعة جلب البيانات بشكل كبير.
مثال:
إذا كان لديك حقل
كود :
ID
يُستخدم كشرط في الاستعلام، تأكد من أن الحقل مفهرس في قاعدة البيانات.

3. تحميل البيانات بشكل غير متزامن (Asynchronous)
استخدم التحميل غير المتزامن حتى لا يتجمد واجهة المستخدم أثناء جلب البيانات.
مثال:
vb
نسخ الكود
كود :
Private Async Sub LoadDataAsync()
   Dim sqlQuery As String = "SELECT * FROM TableName"
   Dim dataTable As New DataTable()
   
   Await Task.Run(Sub()
                      ' تنفيذ الجلب في مهمة منفصلة
                      Using connection As New SqlConnection("Connection_String")
                          Dim adapter As New SqlDataAdapter(sqlQuery, connection)
                          adapter.Fill(dataTable)
                      End Using
                  End Sub)

   ' تحميل البيانات في واجهة المستخدم
   DataGridView1.DataSource = dataTable
End Sub

4. استخدام الاستعلامات الفعالة
تجنب جلب الأعمدة التي لا تحتاجها. على سبيل المثال، إذا كنت تحتاج فقط إلى أعمدة معينة، حددها بدلًا من استخدام
كود :
SELECT *
.
مثال:
vb
نسخ الكود
كود :
Dim sqlQuery As String = "SELECT Name, Age, Address FROM TableName"
الرد }}}
#3
شكرا لك لكن لو حبيت يحمل لي اخر 100 سطر من الاخير
select * botton
الرد }}}
تم الشكر بواسطة:
#4
جرب هذا الكود 
كود :
SELECT *
FROM TableName
ORDER BY ColumnName DESC
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY;
الرد }}}
تم الشكر بواسطة: h2551996
#5
مشكور ياعزيزي
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تصدير البيانات إلى ملف RTF مصمم هاوي 4 823 15-08-25, 04:13 PM
آخر رد: أبو خالد الشكري
  [VB.NET] ما هو أفضل موقع استضافة لقواعد البيانات MSSQL ؟ mmaalmesry 0 795 16-07-25, 10:45 PM
آخر رد: mmaalmesry
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,216 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  مشكلة في حفظ البيانات مصمم هاوي 2 1,019 30-06-25, 08:51 AM
آخر رد: مصمم هاوي
  [VB.NET] حقل الزامي ضمن داتا كريت فيو EMADW 1 411 20-05-25, 01:12 PM
آخر رد: princelovelorn
  [VB.NET] داتا كريت فيو EMADW 13 1,146 15-05-25, 10:48 PM
آخر رد: Taha Okla
  بطء في جلب البيانات مصمم هاوي 9 997 08-05-25, 07:51 AM
آخر رد: مصمم هاوي
  [VB.NET] جمع عمود داتا كريت فيو مع تجاهل الخلايا الفارغة EMADW 4 482 29-04-25, 10:57 PM
آخر رد: Taha Okla
  تعديل كود تحديث البيانات مصمم هاوي 1 784 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
Photo لايمكن تعرف على تنسيق قاعدة البيانات الدريساوي 2 697 26-04-25, 12:24 AM
آخر رد: الدريساوي

التنقل السريع :


يقوم بقرائة الموضوع: