Sql-Server

sys.sysprocesses 與 DMV

  • May 13, 2020

我看過幾篇博文,其中相當有見識的 MVP 仍在使用 sys.sysprocesses 而不是推薦的 DMV:sys.dm_exec_connections、sys.dm_exec_sessions 和 sys.dm_exec_requests。

鑑於 sysprocesses 已被棄用,我很好奇為什麼有人會繼續使用它,尤其是 MVP。是否只是使用 sysprocesses 比加入三個 DMV 更容易,還是有更好的理由使用它?

我提到的兩篇博文是:

Adam Machanic:打破 DMV 神話

Tim Chapman:在 SQL Server 2005 中使用遞歸查找阻塞程序

sys.sysprocesses 仍然包含非常繁瑣或無法從 DMV 獲取的資訊,因為它們並不完整(每個新版本都會好一些,但還不是 100%)。兩個突出的例子:

  • database_id 用於非活動請求(例如,sys.dm_exec_sessions 中有一行,但 sys.dm_exec_requests 中沒有)
  • 開放交易計數

我懷疑這種向後兼容性視圖將一直存在,直到他們直接通過 DMV 提供資訊的幾個版本。

引用自:https://dba.stackexchange.com/questions/12598