web-dev-qa-db-ja.com

sys.sysprocessesとDMV

かなり知識のあるサウンドのMVPが、推奨されるDMVではなくsys.sysprocessesを使用しているブログ投稿をいくつか見てきました:sys.dm_exec_connections、sys.dm_exec_sessions、sys.dm_exec_requests。

Sysprocessesが非推奨になっていることを考えると、なぜ誰もがそれを使い続けるのか、特にMVPに興味があります。 sysprocessesを使用することは、3つのDMVを結合するよりも面倒ではないというだけですか、それともそれを使用するより良い理由がありますか?

私が言及した2つのブログ投稿は次のとおりです。

アダムマハニック:DMV神話を壊す

Tim Chapman:SQL Server 2005で再帰を使用してブロッキングプロセスを検索

4
Simon Tewsi

sys.sysprocessesには、DMVが完全ではなかったため、非常に面倒であるか、DMVから取得することが不可能な情報が含まれています(新しいリリースごとに少し良くなりますが、まだ100%ではありません)。 2つの傑出した例:

  • 非アクティブなリクエストのdatabase_id(たとえば、sys.dm_exec_sessionsには行がありますが、sys.dm_exec_requestsにはありません)
  • オープントランザクション数( Kalen Delaneyのブログ投稿 を参照)

この下位互換性の見方は、いくつかのバージョンafterがDMVを介して直接情報を提供するまで残ると思います。

4
Aaron Bertrand