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

عرض سجلات جدول كبير والتاخير

مغلق
بدأه fahedksa في 17 سبتمبر 2003 · 5 رد · 1,294 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لنفترض وجود فورم لفواتير المبيعات ويوجد اكثر من 800 فاتورة مخزنة مسبقا وعند فتح الفورم ياخذ وقت طويل لتحميل البيانات وعرض اخر فاتورة

كيف يمكن تحسين الاداء

من ضمن الاقتراحات ان لايقوم بتحميل الا اخر فاتورة فقط ولكن بافتراض اراد المستخدم التنقل بين الفواتير السابقة او البحث عن فاتورة قديمة فكيف يمكن ذلك

اود قراءة جميع الاقتراحات والافكار الخاصة بذلك

#2

السلام عليكم،

أقترح عليك عمل فهرسة (Indexing) ويوجد في SQL Server نوعان هما Clustered و non clustered

ممكن يكون من موارد الجهاز يعني مثل الذاكرة والمعالج و... و.. لكن الأكيد انها الفهرسة

وان شالله تنحل مشكلة الآداء بعمل الفهرسة.

MCDBA-RGB.jpg
#3

يمكنك استخدام Threading

فيمكن عمل Thread يقوم بعرض اول 100 سجل ويتيح للمستخدم التنقل والتعامل مع الجدول بدون مشاكل

وفى الخلفيى تقوم بعمل Thead يقوم بتحميل باقى السجلات اذا لزم الأمر

#4

من النصائح في استرجاع البيانات من قاعدة البيانات وخاصة اذا كانت قاعدة بيانات على السيرفر مثل oracle او mssql عدم استخدام الاستعلام الحي live query او فتح كامل الجدول table بل تحديد ذلك واستخدام عبارات sql فمثلا لو كنت استخدم الدلفي فعند استخدام ttable فانه سيفتح كامل الجدول المرتبط بهذه الأداة عند عمل open لها ولكن الأفضل استرجاع البيانات بواسطة sql command مثل

select id,name,.... from invoice where id=1000

ويمكنك وضع ازرار لتنقل بين هذه الفواتير وفي كل مرة ضغط على زر التنقل ينفذ sql command

والمشكلة لدى كثير من المبرجين عند انتقالهم من البرمجة بالستخدام desktop database الى server database هو انه يستمر مفهوم وطريقة فتح والاضافة وغيرها كما في desktop database وهذا لا يستفيد من خصائص server database.

ارجو ان تكون وصلت المعلومة

مثال:

وضعت قاعدة بيانات على السيرفر باستخدام mssql sererv2000 وجدول به 100.000 سجل مكون من رقم واسم وملاحظة واسترجعت البيانات عن طريق فتح كامل الجدول وباستخدام الاستعلام وانا ابرمج على الدلفي والربط بتقنية dao فكانت النتيجة تقريب:

فتح كام الجدول استغرق 6 ثوان

الفتح بالاستعلام ووضع شروط 0 ثانية

وهذا يختلف حسب سرعة السيرفر والشبكة وجهازك ولكن بشكل بسيط.

#5

اسمحوا لى ايضاً بان اقول ان استخدام الاجراءات المخزنه Stored Procedure يضيف المزيد من المرونه و الكفائه للعرض لان ال MS SQL Server يقوم بعمل Execution Plan فى اول مره يتم تنفيذ ال Stored Procedure و المقصود بها هى افضل الطرق التى تزيد من كفائة استخدام الاجراء المخزن و لن يقوم ال MS SQL Server بعمل ال EP كل مره

ايضاً يمكنك استخدام ال Input Parameter مع ال SP لامرار معاملات خاصه بالاستعلام

حقيقه استخدام ال Stored Procedure له مزايا عديده ربما كتبت عنها موضوع لاحقاً إن شاء الله

Technical Lead Developer

My LinkedIn Profile

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

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

#6

جزاكم الله خير الجزاء

هذا الموضوع مغلق.

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