كيفية معرفة مدى موارد الإدخال / الإخراج مهمة أو جلسة أو طلب أو معاملة تستخدم حاليا؟
-
29-09-2020 - |
سؤال
كيفية معرفة مقدار الموارد الإدارية / أي مهمة أو جلسة أو طلب أو معاملة تستخدم حاليا؟
حسب المهمة أعني 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