Sql-server – How to know which DMVs relate to each other

dmvsql server

Is there any way to know which DMVs/DMFs are related to each other?

Some of them are well known or obvious, like sys.dm_exec_connections JOIN sys.dm_exec_sessions ON session_id = session_id, or the DMVs for missing indexes.

However, for example, I would like to know what other DMVs sys.dm_exec_sessions joins with on session_id. Session_id does not exist in sys.columns. Also, the queries here do not list anything for DMVs.

A long, long time ago Microsoft published a large .pdf poster with all of the system views for SQL Server 2005, so I'm looking for something like the for DMVs/DMFs in SQL Server 2017.

Best Answer

You could cheat and use Glen Berry's. The docs list the relationship cardinalities at the bottom for sys.dm_exec_requests, sys.dm_exec_connections, sys.dm_exec_cursors, sys.dm_db_session_space_usage.

Here's the map for 2012 that you're looking for. You'd just need to account for new DMVs Here is a mapping of system tables to system views. - scsimon