ทุกคนสามารถช่วยฉันค้นหารายละเอียดด้านล่างนี้สำหรับการค้นหาที่ยาวนาน ProcessID, ชื่อกระบวนการ, ฐานข้อมูล, โฮสต์, ผู้ใช้, เวลาเข้าสู่ระบบกระบวนการ, เวลาเริ่มต้นแบบสอบถามและระยะเวลาแบบสอบถาม
ฉันกำลังมองหาแบบสอบถามหรือ SP ที่ให้ข้อมูลนี้แก่ฉัน
ทุกคนสามารถช่วยฉันค้นหารายละเอียดด้านล่างนี้สำหรับการค้นหาที่ยาวนาน ProcessID, ชื่อกระบวนการ, ฐานข้อมูล, โฮสต์, ผู้ใช้, เวลาเข้าสู่ระบบกระบวนการ, เวลาเริ่มต้นแบบสอบถามและระยะเวลาแบบสอบถาม
ฉันกำลังมองหาแบบสอบถามหรือ SP ที่ให้ข้อมูลนี้แก่ฉัน
คำตอบ:
ในฐานะที่เป็นความเห็นรอบเครื่องมือที่ดีที่สุดคือsp_whoIsActiveโดยอดัม Machanic สามารถใช้งานได้หลายวิธีเพื่อดูสิ่งที่กำลังทำงานอยู่ในขณะที่คุณเปิดใช้งานสคริปต์หรือคุณสามารถเรียกใช้งานแบบวนซ้ำเพื่อตรวจสอบการกระทำบางอย่างเช่นการสืบค้นที่ช้า
เมื่อต้องการเรียกใช้ในการวนรอบดูที่นี่: วิธีการบันทึกกิจกรรมการใช้ sp_whoisactive ในการวนรอบ การตรวจสอบแบบสอบถามที่ช้า: วิธีการใช้ sp_WhoIsActive เพื่อค้นหาแบบสอบถาม SQL Server ที่ช้า
คุณสามารถใช้ DMV โดยตรงเพื่อรับคิวรีที่ช้าที่สุดและดำเนินการจากที่นั่น ตรวจสอบคำสั่งวินิจฉัยเกล็นเบอร์รี่
และในที่สุดคุณสามารถใช้คิวรีนี้เพื่อค้นหาคิวรีที่ใช้เวลามากที่สุด คุณสามารถเล่นกับdm_exec_query_statsเพื่อเพิ่มข้อมูลเพิ่มเติมหรือเข้าร่วมกับคนอื่นเพื่อรับข้อมูลเพิ่มเติม ระวังว่า dmv ถูกล้างออกและรีเฟรชทุกครั้งที่รีสตาร์ทเซิร์ฟเวอร์
SELECT creation_time
,last_execution_time
,total_physical_reads
,total_logical_reads
,total_logical_writes
, execution_count
, total_worker_time
, total_elapsed_time
, total_elapsed_time / execution_count avg_elapsed_time
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;
แก้ไข
ตัวเลือกใหม่ที่สามารถใช้ได้จากบางเวลาแล้วแรก reponder Kit เป็นชุดของสคริปต์ที่ให้บริการฟรีภายใต้ใบอนุญาต MITโดยทีม BrentOzar ที่จะช่วยในงานต่าง ๆ รวมถึงสคริปต์ที่ OP ถาม ส่วนใหญ่sp_BlitzFirstและsp_BlitzWhoสคริปต์สำหรับกรณีนี้