Script for TempDB Sessions, The Queries, and (Nearly) Everything
Hello,
I’ve been sifting through a few of my older sql files on my hard drive and found this one I wrote a few years back. For each connected session to the SQL instance this script shows the session id’s pages allocated in tempDB and the queries that were last run.
There’s quite a lot of variations of this script available on the web. but I like this one because it does not go into too much detail, but is rather useful for quick troublshooting.
SELECT
u.session_id AS [spid],
DB_NAME (s.database_id) AS [database],
s.login_name AS [login],
s.host_name[origin],
u.internal_objects_alloc_page_count/128.0 AS [allocated tempDb Session Object Space],
u.user_objects_alloc_page_count/128.0 AS [ allocated tempDb Task User Space],
u.user_objects_dealloc_page_count AS [deallocated tempDb Task User Space],
tsu.internal_objects_alloc_page_count/128.0 AS [tempDb Task Object Space],
tsu.user_objects_alloc_page_count/128.0 AS [tempDb Task User Space],
tsu.user_objects_dealloc_page_count AS [deallocated Task tempDb User Space],
tsk.task_state AS [state],
t.text
FROM sys.dm_db_session_space_usage u
INNER JOIN sys.dm_exec_sessions s ON u.session_id = s.session_id
INNER JOIN sys.dm_db_task_space_usage tsu ON s.session_id = tsu.session_id
INNER JOIN sys.dm_exec_connections c ON c.session_id = s.session_id
INNER JOIN sys.dm_os_tasks tsk on tsk.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) t
ORDER BY u.session_id;