首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2016 新功能:sys.dm_exec_input_buffer 取代 DBCC INPUTBUFFER 即時查看工作階段輸入緩衝區

     編輯:關於SqlServer

歷來 DBA 想知道某個工作階段正在執行什麼 SQL 陳述式,只能用 DBCC INPUTBUFFER(spid),但它無法在 T-SQL 中直接呼叫、無法與其他 DMV 串接查詢。SQL Server 2016 引入 sys.dm_exec_input_buffer 動態管理函數 (DMF),徹底解決這些痛點。

基本語法

sys.dm_exec_input_buffer ( session_id, request_id )
  • session_id:工作階段識別碼 (SPID)。
  • request_id:要求識別碼,通常為 0 表示目前作用中要求。

單一工作階段查詢範例

SELECT * FROM sys.dm_exec_input_buffer(55, 0);

回傳欄位:event_type、parameters、event_info (實際 SQL 文字)。

進階應用:搭配 CROSS APPLY 串聯 dm_exec_requests / dm_exec_sessions

SELECT 
    r.session_id,
    s.login_name,
    s.host_name,
    ib.event_info AS current_sql_text
FROM sys.dm_exec_requests r
JOIN sys.dm_exec_sessions s ON s.session_id = r.session_id
CROSS APPLY sys.dm_exec_input_buffer(r.session_id, r.request_id) ib
WHERE s.is_user_process = 1;

即可一次列出所有使用者工作階段正在執行的 SQL 陳述式,方便即時效能監控與阻塞排查。

優勢總結

特性DBCC INPUTBUFFERsys.dm_exec_input_buffer
可在 T-SQL 查詢中使用❌✅
可與其他 DMV JOIN / APPLY❌✅
可納入自動化監控腳本❌✅
回傳格式訊息頁面標準結果集

升級至 SQL Server 2016 後,請直接改用 sys.dm_exec_input_buffer 建立更強大的即時監控與診斷方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved