01-01-25, 06:30 PM
عند جلب عدد كبير من السجلات (مثل 3000 سجل أو أكثر) في تطبيق فيجوال بيسك (VB)، يمكن أن يؤدي ذلك إلى بطء في الأداء. لتحسين سرعة التحميل، يمكن اتباع هذه النصائح:
1. تقليل البيانات المعروضة عند التحميل الأولي
بدلًا من جلب جميع السجلات دفعة واحدة، قم بجلب مجموعة صغيرة من السجلات (مثل أول 50 أو 100 سجل) وعرضها في البداية. يمكن استخدام تقنية Pagination أو التقسيم إلى صفحات.
مثال:
vb
نسخ الكود
ويمكنك تعديل الاستعلام لاحقًا لجلب الصفحة التالية عند طلب المستخدم.
2. استخدام الفهرسة في قاعدة البيانات
تأكد من أن الحقول المستخدمة في البحث أو التصفية (مثل الحقول التي يتم فرزها أو البحث بها) تحتوي على فهرسة (Index). هذا يمكن أن يحسن سرعة جلب البيانات بشكل كبير.
مثال:
إذا كان لديك حقل
يُستخدم كشرط في الاستعلام، تأكد من أن الحقل مفهرس في قاعدة البيانات.
3. تحميل البيانات بشكل غير متزامن (Asynchronous)
استخدم التحميل غير المتزامن حتى لا يتجمد واجهة المستخدم أثناء جلب البيانات.
مثال:
vb
نسخ الكود
4. استخدام الاستعلامات الفعالة
تجنب جلب الأعمدة التي لا تحتاجها. على سبيل المثال، إذا كنت تحتاج فقط إلى أعمدة معينة، حددها بدلًا من استخدام
.
مثال:
vb
نسخ الكود
1. تقليل البيانات المعروضة عند التحميل الأولي
بدلًا من جلب جميع السجلات دفعة واحدة، قم بجلب مجموعة صغيرة من السجلات (مثل أول 50 أو 100 سجل) وعرضها في البداية. يمكن استخدام تقنية Pagination أو التقسيم إلى صفحات.
مثال:
vb
نسخ الكود
كود :
Dim sqlQuery As String = "SELECT TOP 100 * FROM TableName ORDER BY ID"2. استخدام الفهرسة في قاعدة البيانات
تأكد من أن الحقول المستخدمة في البحث أو التصفية (مثل الحقول التي يتم فرزها أو البحث بها) تحتوي على فهرسة (Index). هذا يمكن أن يحسن سرعة جلب البيانات بشكل كبير.
مثال:
إذا كان لديك حقل
كود :
ID3. تحميل البيانات بشكل غير متزامن (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 Sub4. استخدام الاستعلامات الفعالة
تجنب جلب الأعمدة التي لا تحتاجها. على سبيل المثال، إذا كنت تحتاج فقط إلى أعمدة معينة، حددها بدلًا من استخدام
كود :
SELECT *مثال:
vb
نسخ الكود
كود :
Dim sqlQuery As String = "SELECT Name, Age, Address FROM TableName"
