كيفية معرفة مدى موارد الإدخال / الإخراج مهمة أو جلسة أو طلب أو معاملة تستخدم حاليا؟

dba.stackexchange https://dba.stackexchange.com/questions/116878

سؤال

كيفية معرفة مقدار الموارد الإدارية / أي مهمة أو جلسة أو طلب أو معاملة تستخدم حاليا؟

حسب المهمة أعني DMV يسمى DMV sys.dm_os_tasks . بحلول الجلسة أعني DMV sys.dm_exec_sessions

في بعض الأحيان جلسة لديها طلب، حسب الطلب أقصد DMV sys.dm_exec_requests أو قد تحتوي جلسة معاملة بدلا من ذلك - SYS. dm_tran_database_transactionss

كيف يمكنني ربط هذه الأشياء مع استخدام I / O ؟

ألقيت نظرة على DMV يسمى DMV SYS.DM_OS_TASKS .

href="https://technet.microsoft.com/en-us/library/ms174963(V=SQL.110).aspx" rel="nofollow noreferrer"> dmv syss.dm_os_tasks لديه بعض الأعمدة المثيرة للاهتمام لمعرفة المزيد حول العمليات التي تعمل حاليا في SQL Server.

syss.dm_os_tasks - عدم إظهار الرايوق_io_byte_count

ومع ذلك، عندما أحاول تحديد مقدار I / O كل من مهامي يتعامل مع I / O في انتظار IN BYTES هو دائما صفر.

href="https://i.stack.imgur.com/guptk.jpg" rel="nofollow noreferrer">  أدخل وصف الصورة هنا

هذا مثال على نتائج استفسار أثناء محاولتي مراقبة بعض Works CXPackets.

يبدو أن

pending_io_count على ما يرام، ولكن رعايت_IO_BY_COWETS دائما صفر.

ماذا يمكن أن يكون بديلا؟ أريد قياس استخدام الإدخال / الإخراج لكل عملية متوازية.

في الواقع يمكن أن يكون فقط استخدام الإدخال / الإخراج لكل جلسة أو طلب.

حتى جلسات بدون طلب في بعض الأحيان تكون جيدة في بعض الأحيان، لأنها قد تعيق العمليات الأخرى.

href="https://i.stack.imgur.com/5okq6.jpg" rel="nofollow noreferrer">  أدخل وصف الصورة هنا

هل كانت مفيدة؟

المحلول

إذا كنت تبحث عن I / O الفعلي الفعلي للاستعلام، يجب عليك إلقاء نظرة على XML ShowPlan لعنصر "ActualphysicalReads":

schemas.microsoft.com/sqlserver/2004/07/showplan / ص>

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

hth

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top