ตรวจสอบการเชื่อมต่อ เซสชัน และคําขอโดยใช้ 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
เรียกใช้คําสั่ง