使用 DMV 監視連線、會話和要求
適用於: Microsoft Fabric 中的 SQL 分析端點和倉儲
您可以使用現有的動態管理檢視 (DMV) 來監視 Microsoft Fabric 中的連線、會話和要求狀態。 如需執行 T-SQL 查詢之工具和方法的詳細資訊,請參閱 查詢倉儲。
如何使用查詢生命週期 DMV 監視連線、會話和要求
針對目前的版本,提供三個動態管理檢視(DMV),讓您接收即時 SQL 查詢生命週期深入解析。
- sys.dm_exec_connections
- 傳回倉儲與引擎之間建立之每個連線的相關信息。
- sys.dm_exec_sessions
- 傳回專案與引擎之間驗證之每個會話的相關信息。
- sys.dm_exec_requests
- 傳回會話中每個作用中要求的相關信息。
這三個 DMV 提供下列案例的詳細見解:
- 神秘 使用者是否執行工作階段?
- 使用者何時啟動會話?
- 與數據倉儲的連線標識碼,以及執行要求的會話為何?
- 有多少個查詢正在主動執行?
- 哪些查詢長時間執行?
在本教學課程中,瞭解如何使用動態管理檢視 (DMV) 監視執行中的 SQL 查詢。
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';
第三個查詢示範如何在 上 session_id
搭配長時間執行的查詢使用KILL命令。
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
命令的許可權。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應