แชร์ผ่าน


ตรวจสอบการเชื่อมต่อ เซสชัน และคําขอโดยใช้ DMV

นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric

คุณสามารถใช้มุมมองการจัดการแบบไดนามิก (DMV) ที่มีอยู่เพื่อตรวจสอบการเชื่อมต่อ เซสชัน และสถานะคําขอใน Microsoft Fabric สําหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือและวิธีการดําเนินการคิวรี T-SQL โปรดดู การสอบถามคลังสินค้า

วิธีการตรวจสอบการเชื่อมต่อ เซสชัน และคําขอโดยใช้ DMV วงจรชีวิตคิวรี

สําหรับเวอร์ชันปัจจุบัน มีมุมมองการจัดการแบบไดนามิก (DMV) สามแบบที่ให้ไว้สําหรับคุณเพื่อรับข้อมูลเชิงลึกวงจรชีวิตคิวรี SQL แบบสด

  • sys.dm_exec_connections
    • ส่งกลับข้อมูลเกี่ยวกับการเชื่อมต่อแต่ละรายการที่สร้างขึ้นระหว่างคลังสินค้าและกลไกจัดการ
  • sys.dm_exec_sessions
    • ส่งกลับข้อมูลเกี่ยวกับแต่ละเซสชันที่รับรองความถูกต้องระหว่างรายการและกลไกจัดการ
  • sys.dm_exec_requests
    • ส่งกลับข้อมูลเกี่ยวกับแต่ละคําขอที่ใช้งานอยู่ในเซสชัน

DMV สามรายการเหล่านี้ให้ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับสถานการณ์ต่อไปนี้:

  • ผู้ใช้ที่กําลังเรียกใช้เซสชันคือใคร
  • ผู้ใช้เริ่มต้นเซสชันเมื่อใด
  • ID ของการเชื่อมต่อไปยังคลังข้อมูลและเซสชันที่กําลังเรียกใช้คําขอคืออะไร
  • มีคิวรีที่ทํางานอยู่กี่รายการ?
  • คิวรีใดที่ใช้เวลานาน

ในบทช่วยสอนนี้ เรียนรู้วิธีการตรวจสอบคิวรี SQL ที่ทํางานอยู่ของคุณโดยใช้มุมมองการจัดการแบบไดนามิก (DMV)

ตัวอย่างคิวรี DMV

คิวรี sys.dm_exec_sessions ตัวอย่างต่อไปนี้เพื่อค้นหาเซสชันทั้งหมดที่กําลังดําเนินการอยู่ในขณะนี้

SELECT * 
FROM sys.dm_exec_sessions;

ค้นหาความสัมพันธ์ระหว่างการเชื่อมต่อและเซสชัน

ตัวอย่างต่อไปนี้จะ sys.dm_exec_connections รวมและ sys.dm_exec_sessions กับความสัมพันธ์ระหว่างเซสชันที่ใช้งานอยู่ในการเชื่อมต่อเฉพาะ

SELECT connections.connection_id,
 connections.connect_time,
 sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;

ระบุและฆ่าคิวรีที่ทํางานนาน

คิวรีแรกนี้ระบุรายการของคิวรีที่เรียกใช้เป็นเวลานานตามลําดับที่คิวรีใช้เวลานานที่สุดนับตั้งแต่มาถึง

SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;

คิวรีที่สองนี้แสดงผู้ใช้เรียกใช้เซสชันที่มีคิวรีที่ใช้เวลานาน

SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';

คิวรีที่สามนี้แสดงวิธีใช้คําสั่ง KILL บน session_id ด้วยคิวรีที่ทํางานนาน

KILL 'SESSION_ID WITH LONG-RUNNING QUERY'

เช่น

KILL '101'

การอนุญาต

  • ผู้ดูแลระบบมีสิทธิ์ในการดําเนินการ DMV ทั้งสาม (sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests) เพื่อดูข้อมูลของตนเองและข้อมูลของผู้อื่นภายในพื้นที่ทํางาน
  • สมาชิก ผู้สนับสนุน และผู้ชมสามารถดําเนินการsys.dm_exec_sessionsและsys.dm_exec_requestsดูผลลัพธ์ของตนเองภายในคลังสินค้า แต่ไม่ได้รับอนุญาตให้ดําเนินการsys.dm_exec_connections
  • เฉพาะผู้ดูแลระบบเท่านั้นที่มีสิทธิ์ในการ KILL เรียกใช้คําสั่ง