Sql server SQL Server进程运行时间和ip地址

Sql server SQL Server进程运行时间和ip地址,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我想制作一个SELECT或存储过程,以了解一个进程运行多长时间以及ip地址从何处开始 SELECT conn.session_ID as SPID, conn.client_net_address as IPAddress, sess.host_name as MachineName, sess.program_name as ApplicationName, login_name as LoginName FROM sys.dm_exec_connect

我想制作一个SELECT或存储过程,以了解一个进程运行多长时间以及ip地址从何处开始

SELECT 
   conn.session_ID as SPID,
   conn.client_net_address as IPAddress,
   sess.host_name as MachineName,
   sess.program_name as ApplicationName,
   login_name as LoginName
FROM 
   sys.dm_exec_connections conn
INNER JOIN 
   sys.dm_exec_sessions sess ON conn.session_ID = sess.session_ID

我有这个,但只显示ip地址。

听起来你需要添加

sess.last_request_start_time,
sess.last_request_end_time,
您可以使用DATEDIFF获取日期之间的秒数,如果最后一个请求尚未结束,则可以使用ISNULL将当前时间替换为结束时间

SELECT 
conn.session_ID as SPID,
conn.client_net_address as IPAddress,
sess.host_name as MachineName,
sess.program_name as ApplicationName,
login_name as LoginName,
sess.last_request_start_time,sess.last_request_end_time,
DATEDIFF(second,sess.last_request_start_time,ISNULL(sess.last_request_end_time,getdate())) last_request_seconds
FROM sys.dm_exec_connections conn
inner join sys.dm_exec_sessions sess
on conn.session_ID=sess.session_ID
WHERE conn.session_ID <> @@SPID -- Don't include this query

看起来除了IP地址之外,还有4列。你想做什么,不想做什么?我想知道一个进程/会话运行了多长时间