الجلسات المحظورة المنتظرة مع أنواع الانتظار PAGELATCH_*؟
-
29-09-2020 - |
المحلول
لقد افترضت سابقًا أن SQL Server سيبلغ فقط عن جلسة حظر في العمود blocking_session_id، إذا كانت الجلسات المحظورة تنتظر قفلًا منطقيًا وليس أي شيء آخر مثل
PAGELATCH_*
.
أنت تستخدم آدم Machanic sp_WhoIsActive
الإجراء، وليس منشأة SQL Server المضمنة.يُبلغ إجراء آدم عن جميع الأسباب "المثيرة للاهتمام" للحظر، وليس فقط حظر القفل.المعلومات الأساسية تأتي من مصادر مختلفة، بما في ذلك sysprocesses, sys.dm_exec_requests, ، و sys.dm_os_waiting_tasks.
يمكن أن تنتظر المهمة أشياء أخرى إلى جانب القفل.قد يكون قادرًا، على سبيل المثال، على الحصول على قفل حصري على صف في الصفحة، ولكن بعد ذلك لا يزال يتعين عليه الانتظار للحصول على صفحة حصرية مزلاج (لأن المهام الأخرى قد أغلقت نفس الصفحة في وضع غير متوافق).
في مثالك، PAGELATCH_EX
توجد مزالج الصفحات الحصرية على صفحات البيانات أو الفهرس العادية، وليست صفحات PFS أو GAM أو SGAM أو DCM أو BCM، كما هو موضح بواسطة (*) في نهاية wait_info.
يمكنك العثور على الوثائق (إدخالات المدونة) الخاصة بـ sp_WhoIsActive
هنا.