i run this on a few servers and then there is a job to transfer it to a central server and truncate the data on the source.
insert admindb..tblsupersysprocesses ( session_id, login_time, connect_time, host_name, client_net_address, program_name, login_name,
protocol_version, auth_scheme, last_read, last_write, cpu_time, memory_usage,
last_request_start_time, last_request_end_time, reads, writes)
select
a.session_id, a.login_time, b.connect_time, a.host_name, b.client_net_address, a.program_name, a.login_name,
b.protocol_version, b.auth_scheme, b.last_read, b.last_write, a.cpu_time, a.memory_usage,
a.last_request_start_time, a.last_request_end_time, a.reads, a.writes
--into admindb..tblsupersysprocesses
from sys.dm_exec_sessions as a, sys.dm_exec_connections as b
--cross apply sys.dm_exec_sql_text(b.most_recent_sql_handle) as SQL_Query
where a.session_id = b.session_id
update admindb.. tblsupersysprocesses
set date = getdate() where date is null