Sql-Server
sys.sysprocesses 與 DMV
我看過幾篇博文,其中相當有見識的 MVP 仍在使用 sys.sysprocesses 而不是推薦的 DMV:sys.dm_exec_connections、sys.dm_exec_sessions 和 sys.dm_exec_requests。
鑑於 sysprocesses 已被棄用,我很好奇為什麼有人會繼續使用它,尤其是 MVP。是否只是使用 sysprocesses 比加入三個 DMV 更容易,還是有更好的理由使用它?
我提到的兩篇博文是:
sys.sysprocesses 仍然包含非常繁瑣或無法從 DMV 獲取的資訊,因為它們並不完整(每個新版本都會好一些,但還不是 100%)。兩個突出的例子:
- database_id 用於非活動請求(例如,sys.dm_exec_sessions 中有一行,但 sys.dm_exec_requests 中沒有)
- 開放交易計數
我懷疑這種向後兼容性視圖將一直存在,直到他們直接通過 DMV 提供資訊後的幾個版本。