الساده الاعضاء
السلام عليكم ورحمة الله وبركاتة
بخصوص الموضوع المشار اليه أضع بين أيديكم اليوم الشر الكامل لكيفية تسريع البحث وادخال البيانات داخل قاعده البيانات وذلك في حالة اذا كنت تستخدم واجهات أكسس مع قواعد بيانات 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
كما تلاحظ أنه لا يوجد أي حقول مفهرسة أو Indexes داخل هذا الحقل
ماذا لو قمنا بعمل مفتاح أساسي لهذا الحقل
وذهبنا مرة أخري لمشاهده ماذا حدث سنجد أن برنامج SQL Server قام بانشاء Indexes لهذا الحقل بطريقة اتوماتيكية من هذا المنطق نفهم أن من ضمن الشروط الاساسية لانشاء حقل من نوع Primary Key أن يكون مفهرساً
تقريبا انتهاينا من المرحلة الاولي وهي التأكد من أن جداولنا مصممة بشكل سليم والحقول مفهرسة بشكل سليم اذن هنا السؤال؟
مازالت قاعده بياناتي بطيئة جداً أثناء العمل ولا يمكنني العمل بمثل هذا الشكل فما العمل ؟؟؟
الحل فيه 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
كالتالي
وكما هو موضح بالصورة
أولاً قم بتخطي شاشة الترحيب التي ستظهر أمامك
ثانياً : قم باختيار قاعده البيانات التي ستقوم باجراء الصيانة عليها
ثالثاً : قم باختيار هذه الخيارات كما هو موضح بالصورة
رابعاً : قم باختيار هذه الخيارات كما هو موضح بالصورة
خامساً : يمكننا تجاهل خطوات Backup الان لاننا لسنا هنا بصدد عمل Database Backup
ثم اكتب اسم Maintenance plan المناسب ثم قم بعمل Finish
بعد الانتهاء سيقوم البرنامج بانشاء maintenance plan جديده
ولتشغيلها اتبع التالي
قم بتشغيل Job المسماه Integrity Checks Job for DB Maintenance Plan 'DB Maintenance Plan1'
وبعد ان تنتهي قم بشتغيل الــ Job Optimizations Job for DB Maintenance Plan 'DB Maintenance Plan1'
وبعد الانتهاء ستحصل علي أعلي آداء وسرعة لقاعده بياناتك في التعامل
انتهي
وفي انتظار اي استفسارات بخصوص أي شيء غير واضح بالمشاركة






