عبارة NOLOCK يمكن استخدامها مع عبارة SELECT وذلك لتسريع تنفيذ الايعازات. هناك جدل كبير حول فوائد استخدام عبارة NOLOCK واذا قمت ببحث في الجوجل سوف تجد عشرات المواضيع المتعلقة بهذه المسئلة. في البداية كنت ممن يعارضون استخدام هذا HINT ولكن الحاجة في بعض الاحيان تدفع المبرمج الى اختبار الاشياء بشكل عملي. عند التعامل مع قواعد البيانات الكبيرة والتي تمتلك الملايين من سطور البيانات تصبح عملية تحسين أداء قاعدة البيانات أمر ضروري. ذكرنا سابقا لتحسين أداء قاعدة البيانات يمكن استخدام الفهارس indexs ولكن في بعض الأحيان استخدام الفهارس يكون غير كافي لذا يضطر مبرمج قواعد البيانات إلى البحث عن خيارات أخرى لتحسين الأداء ومنها عبارة NOLOCK. ببساطة عند ذكر هذه العبارة بعد اسم الجدول وكما يلي
SELECT * FROM Person.person NOLOCK
فأن نظام إدارة قواعد البيانات سوف يقوم بأسترجاع البيانات من الجدول دون الحاجة للانتظار لأكمال العمليات الأخرى التي تجري على الجدول مثل عمليات إضافة INSERT البيانات وعملية تحديث البيانات UPDATE وعملية حذف البياناتDELETE.
مثلا أثناء تنفيذ استعلام على الجدول قد يكون هناك شخص آخر قد بدء بتنفيذ استعلام تعديل UPDATE على احد السطور هنا اذا لم نستخدم عبارة NOLOCK فإن نظام إدارة قواعد البيانات سوف ينتظر هذا الشخص لكي يكمل عملية التحديث ثم ينفذ عملية اختيار البيانات SELECT. أما إذا استخدمنا عبارةNOLOCK فإن نظام إدارة قواعد البيانات سوف لا ينتظر أكمل عملية التحديث بل يقوم بأسترجاع البيانات من الجدول كما هي وهنا يوجد احتمالان الأول ان عملية التحديث قد تمت بسرعة وبلتالي سوف تحصل على البيانات المحدثة او تكون عملية التحديث بطيئة وسوف تحصل على بيانات هذا السطر قبل التحديث. حسب خبرتي العملية وكذلك بلنقاش مع بعض المختصين من مايكروسوفت في معظم الأحيان سوف تستعيد البيانات المحدثة ونسبة عالية حتى مع استخدام عبارة NOLOCK . لذا يعتبر هذا خيار جيد اذا كنت تعاني من مشاكل بطىء في تنفيذ احد الاستعلامات وحتى بعدما اضفت الفهارس indexs.
للتنبيه عند استخدام الأسماء المختصرة الجداول (راجع الدرس السابق) يجب كتابة عبارة NOLOCK بشكل خاص وبين قوسين وتكون قبل الاسم المختصر وكما يلي
SELECT * FROM Person. PERSON NOLOCK) PRSN)
ليست هناك تعليقات:
إرسال تعليق