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

معلومة:: طريقة تسريع عمليات البحث والتعامل مع قاعده البيانات

بدأه محمد فؤاد تركي في 22 أبريل 2010 · 7 رد · 6,992 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الساده الاعضاء

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

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

كما نعلم جميعاً أن من ضمن المتطلبات الاساسية لتصميم الجداول في أي قاعده بيانات أن تحتوي بعض الحقول علي مفاتيح أساسية أو Primary Keys

وذلك حسب متطلبات التصميم أو Database structure

فهناك الكثير من الاعضاء يفضلون أن يستخدموا برنامج الاكسس كواجهة للمستخدم فقط والاعتماد علي تخزين البيانات داخل قواعد بيانات SQL Server

نظراً لانها تحتوي علي الكثير من المميزات الغير متوفرة في برنامج الاكسس

منها

1 - السعة التخزينية العالية

2 - نسبة الامان عالية جداً

3 - تحتوي علي سيناريوهات لــ Maintenance Plans في غاية الروعة

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

لكن نحن الان بصدد شرح مشكلة واجهت الكثير من الاعضاء وهي بطيء البرنامج بعد فترة من الاستخدام

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

ربما ترجع أسباب بطيء البرنامج للاسباب التالية

1 - امكانيات السيرفر ضعيفة

2 - وجود مشكلة بالشبكة المحلية التي يعمل عليها البرنامج

3 - ضعف في خطوط الانترنت اذا كان الاتصال عن طريق الانترنت

4 - لا يوجد مساحات كافية علي الهارد ديسك حيث أن برنامج SQL Server لا يستطيع العمل بكفاءة اذا كانت المساحة التخزينية الفارغة أقل من 10%

5 - لا يوجد صيانة دورية لقاعده البيانات Maintenance Plan ولا يستطيع عمل مثل هذه الامور غير DBA

6 - بناء قاعده البيانات من الاساس غير صحيح

7 - كود مكتوب بشكل معين يجبر السيرفر علي انه دائما في حالة Workload

تقريبا هذه معظم مسبباب عملية البطيء داخل البرامج

ولحل هذه المشكلة والمتورط فيها أطراف كثيرة يجب أن يتم فحص كل جزئية علي حده لاكتشاف المشكلة

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

النقطة 1 و 2 و 3 و و 6 و 7 سليمة

بمعني آخر سيكون الحديث اليوم علي صيانة قاعده البيانات SQL Server

أولاً:- بعد ما تأكدنا أن جداول البرنام جميعها مفهرسة أو تحتوي علي Clustered_Indexed

وطبيعي أن تكون الحقول من نوع Primary Key مفهرسة أما اذا كانت لا تحتوي علي Primary Key فيمكننا عمل مثل هذه الطريقة كالتالي

بيئة العمل علي SQL Server 2000

ادخل علي الجدول في نمط الدايزين والمراد عمل لحقل بداخلة Indexes

post-46243-12719260334142_thumb.jpg

كما تلاحظ أنه لا يوجد أي حقول مفهرسة أو Indexes داخل هذا الحقل

post-46243-12719260955013_thumb.jpg

ماذا لو قمنا بعمل مفتاح أساسي لهذا الحقل

post-46243-12719261632637_thumb.jpg

وذهبنا مرة أخري لمشاهده ماذا حدث سنجد أن برنامج SQL Server قام بانشاء Indexes لهذا الحقل بطريقة اتوماتيكية من هذا المنطق نفهم أن من ضمن الشروط الاساسية لانشاء حقل من نوع Primary Key أن يكون مفهرساً

post-46243-12719262928907_thumb.jpg

تقريبا انتهاينا من المرحلة الاولي وهي التأكد من أن جداولنا مصممة بشكل سليم والحقول مفهرسة بشكل سليم اذن هنا السؤال؟

مازالت قاعده بياناتي بطيئة جداً أثناء العمل ولا يمكنني العمل بمثل هذا الشكل فما العمل ؟؟؟

الحل فيه Maintenance Plan الذي يضعها DBA لحل مشاكل بطيء قاعده البيانات وهي كالتالي سنسرد أسباب البطي وطرق حلها

هناك خطوات علمية يجب أن نتبعها لحل هذه المشكلة

1 - فوائد maintenance Plan

هي ازالة المساحات الغير مستخدمة والغير مستغلة في قاعده البيانات نتيجة

- execution reports

- database backup files

2 - Reorganize Index Task

وهي عبارة عن مهمة تقوم بــ defragments & compact both clustered and non-clustered indexes on tables and views

3 - Rebuild Index Task

ومهمتها organize data which is there on the data and index pages by rebuilding indexes

4 - Shrink Database Task

ومهمتها reduce the disk space which is consumed by the database and log files by removing the empty data and log pages

5 - Update Statistics Task

ومهمتها ensures that the query optimizer has up-to-date information about the distribution of data values within the tables

وأعتذر عن عدم كتابة هذه المهام باللغة العربية لا نها لا يصح أن تكتب الا باللغة الانجليزية لدقة التعبير

وهذه المهام نقوم بتنفيذها عن طريق Maintenance Plan

كالتالي

وكما هو موضح بالصورة

post-46243-12719271584045_thumb.jpg

أولاً قم بتخطي شاشة الترحيب التي ستظهر أمامك

post-46243-12719272798652_thumb.jpg

ثانياً : قم باختيار قاعده البيانات التي ستقوم باجراء الصيانة عليها

post-46243-12719272816653_thumb.jpg

ثالثاً : قم باختيار هذه الخيارات كما هو موضح بالصورة

post-46243-12719273487339_thumb.jpg

رابعاً : قم باختيار هذه الخيارات كما هو موضح بالصورة

post-46243-12719274125082_thumb.jpg

خامساً : يمكننا تجاهل خطوات Backup الان لاننا لسنا هنا بصدد عمل Database Backup

ثم اكتب اسم Maintenance plan المناسب ثم قم بعمل Finish

post-46243-1271927535751_thumb.jpg

بعد الانتهاء سيقوم البرنامج بانشاء maintenance plan جديده

post-46243-12719275935999_thumb.jpg

ولتشغيلها اتبع التالي

post-46243-12719277187416_thumb.jpg

قم بتشغيل Job المسماه Integrity Checks Job for DB Maintenance Plan 'DB Maintenance Plan1'

وبعد ان تنتهي قم بشتغيل الــ Job Optimizations Job for DB Maintenance Plan 'DB Maintenance Plan1'

وبعد الانتهاء ستحصل علي أعلي آداء وسرعة لقاعده بياناتك في التعامل

انتهي

وفي انتظار اي استفسارات بخصوص أي شيء غير واضح بالمشاركة

5

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

الاستاذ / محمد

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

جزاك الله خيرا على مجهوداتك الرائعه والمفيده

ولى طلب على حسب الوقت المتاح لديك

وهو عمل دوره مثل دورة كيف تبني برنامج مخازن ومبيعات بطريقة صحيحة

ولكن تكون اكسيس وبرامج اخرى سواء يستخدم فيها الاكسيس كواجهه او العكس

واعانك الله على دراستك وادعوا الله لك ان تحصل على الدكتواره فى المجال الذى تحبه

ويارت فيه اكتر من +1

تم تعديل هذه المشاركة بواسطة foxman2wy في 22 أبريل 2010 في 12:40

سبحان الله وبحمده سبحان الله العظيم .. سبحان الله . الحمد لله . لا اله الا الله . الله اكبر .. استغفر الله . استغفر الله . استغفر الله

يارب احمى دينى وبلدى من كيد الاعداء والخائنين بحبك يا مصر بحبك يا مصر بحبك يا مصر

 


 


3.gif

#3

محمد باشا فؤاد

الله ينور ينور عليك شغل 10÷10

والنقاط من 1 الي 7 فعلا ممتازة جدا الا أذا ......

كان الموضوع ربط الاكسس مع السيكوال 2000 او 2005 او اي اصدار فهناك سبب 8 للبطئ

وهو Access database engine

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

متنساش سلامي لمترو الانفاق :-)

1

Microsoft Certified DataBase Administrator MCDBA

#4

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

موضوع مهم للغاية ونحن بحاجة له

وفقك الله ونفع بعلمك

ويستاهل+1

اتق الله حيث ماكنت

#5

بارك الله فيك أخي الكريم وأجزل لك المثوبة

في الحقيقة أعمل حاليا على مشروع مماثل ، حيث قمت باستخدام قاعدة بيانات SQL SERVER 2005 كقاعدة تخزين ، والواجهات باستخدام ACCESS .

من حيث السرعة فهي سريعة جدا ولا تعاني من أي ثقل في الاستجابة ، وفي حالة وجود خلل فهي من الشبكة ليس إلا .

مواصفات جهاز السيرفر اللذي أعمل عليه مواصفات متوسطة ، وبالرغم من ذلك لا يوجد اي ثقل في استرجاع البيانات ، وكأنها قاعدة بيانات على نفس الجهاز .

يتمتع العمل الذي أقوم به بأمنية عالية نظرا لاستخدام SQL SERVER 2005 ، ولا يوجد قلق أبدا في عملية كبر القاعدة نظرا لتخصص ال SQL SERVER 2005 في إنشاء وإدارة قواعد البيانات المركزية 

هذا ما أردت فقط أن أضيفه لأخوتي الكرام .

أخي محمد تستاهل (+1) ، بارك الله فيك

تحياتي ،،،

#6

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

ما شاء الله عليك أخي محمد ، فعلاً شرح أكثر من رائع

جعله الله في ميزان حسناتك يوم القيامة

بارك الله فيك و جزاك الله عنا كل خير

post-12787-12741339659298.jpg

ومامن يد إلا يد الله فوقها *** وما من ظالم إلا سيبلى بأظلم

تفضل أخي الكريم | موسوعة الحميدي الذهبية | بأجزائها الثلاثة مع هدية الموسوعة .

#7

أخي الفاضل واستاذنا الكريم : محمد فؤاد ( ابو أحمد )

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

ما شاء الله تبارك الله

شرح ولا أروع من استاذ رائع

بارك الله بك وجزاك الله كل خير

الى الإمام دائما وابداً

+1

بالتوفيق

1

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