Hi @dhamp ,
Run code as next:
SELECT s.session_id, s.status, s.login_time, s.host_name,
s.program_name, s.host_process_id, s.client_version,
s.client_interface_name, s.login_name, s.last_request_start_time,
s.last_request_end_time, c.connect_time, c.net_transport,
c.net_packet_size, c.client_net_address, r.request_id, r.start_time,
r.status, r.command, r.database_id, r.user_id, r.blocking_session_id,
r.wait_type, r.wait_time, r.last_wait_type, r.wait_resource,
r.open_transaction_count, r.transaction_id, r.percent_complete,
r.cpu_time, r.reads, r.writes, r.granted_query_memory
FROM sys.dm_exec_requests r
RIGHT OUTER JOIN sys.dm_exec_sessions s
ON r.session_id = s.session_id
RIGHT OUTER JOIN sys.dm_exec_connections c
ON s.session_id = c.session_id
WHERE s.is_user_process = 1
and there is another dmv sys.dm_os_wait_stats, the result can return the total waiting count and waiting time of all waiting states since sqlserver started. From these accumulated values, we can see what sqlserver is waiting for.
Check the result and analyze it or post it here
More information: inf-understanding-and-resolving-sql-server-blocking-problems
BR,
Mia
If the answer is helpful, please click "Accept Answer" and upvote it.