分享方式:


使用 DMV 監視連線、會話和要求

適用於: Microsoft Fabric 中的 SQL 分析端點和倉儲

您可以使用現有的動態管理檢視 (DMV) 來監視 Microsoft Fabric 中的連線、會話和要求狀態。 如需執行 T-SQL 查詢之工具和方法的詳細資訊,請參閱 查詢倉儲

如何使用查詢生命週期 DMV 監視連線、會話和要求

針對目前的版本,提供三個動態管理檢視(DMV),讓您接收即時 SQL 查詢生命週期深入解析。

這三個 DMV 提供下列案例的詳細見解:

  • 神秘 使用者是否執行工作階段?
  • 使用者何時啟動會話?
  • 與數據倉儲的連線標識碼,以及執行要求的會話為何?
  • 有多少個查詢正在主動執行?
  • 哪些查詢長時間執行?

在本教學課程中,瞭解如何使用動態管理檢視 (DMV) 監視執行中的 SQL 查詢。

DMV 查詢範例

下列範例會查詢 sys.dm_exec_sessions 以尋找目前正在執行的所有會話。

SELECT * 
FROM sys.dm_exec_sessions;

Screenshot showing the results of sys.dm_exec_sessions.

尋找連線與會話之間的關聯性

下列範例會將 sys.dm_exec_connectionssys.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_connectionssys.dm_exec_sessionssys.dm_exec_requests、 ) 的許可權,可在工作區內查看自己的和其他資訊。
  • 成員、參與者和查看器可以在倉儲中執行 sys.dm_exec_sessionssys.dm_exec_requests 查看自己的結果,但沒有執行 sys.dm_exec_connections的許可權。
  • 只有 管理員 具有執行KILL命令的許可權。