SELECT at.text,sp.* FROM[Master].[dbo].[SYSPROCESSES] sp
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS at
WHERE hostprocess=3616
以上语句作用:
查询客户端进程PID 为3616的程序,与此数据库的所有的连接数,每个连接最后执行的语句以及每个连接的详细信息。
进程PID 可以在任务管理器中进行查看。
连接最后执行的语句是text列的详细信息。
每个连接的详细信息在sp.*中详细说明。
执行结果
spid 前50个表示的是 系统进程ID
查看文档:
以下是sysprocesses 表中保存关于运行在 Microsoft® SQL Server™ 上的进程的信息。这些进程可以是客户端进程或系统进程。sysprocesses 只存储在master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
spid | smallint | SQL Server 进程 ID。 |
kpid | smallint | Microsoft Windows NT 4.0® 线程 ID。 |
blocked | smallint | 分块进程的进程 ID (spid)。 |
waittype | binary(2) | 保留。 |
waittime | int | 当前等待时间(以毫秒为单位)。当进程不处于等待时,为 0。 |
lastwaittype | nchar(32) | 表示上次或当前等待类型名称的字符串。 |
waitresource | nchar(32) | 锁资源的文本化表示法。 |
dbid | smallint | 当前正由进程使用的数据库 ID。 |
uid | smallint | 执行命令的用户 ID。 |
cpu | int | 进程的累计 CPU 时间。无论 SET STATISTICS TIME ON 选项是 ON 还是 OFF,都为所有进程更新该条目。 |
physical_io | int | 进程的累计磁盘读取和写入。 |
memusage | int | 当前分配给该进程的过程高速缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。 |
login_time | datetime | 客户端进程登录到服务器的时间。对于系统进程,是存储 SQL Server 启动发生的时间。 |
last_batch | datetime | 客户端进程上次执行远程存储过程调用或 EXECUTE 语句的时间。对于系统进程,是存储 SQL Server 启动发生的时间。 |
ecid | smallint | 用于唯一标识代表单个进程进行操作的子线程的执行上下文 ID。 |
open_tran | smallint | 进程的打开事务数。 |
status | nchar(30) | 进程 ID 状态(如运行、休眠等)。 |
sid | binary(85) | 用户的全局唯一标识符 (GUID)。 |
hostname | nchar(128) | 工作站的名称。 |
program_name | nchar(128) | 应用程序的名称。 |
hostprocess | nchar(8) | 工作站进程 ID 号。 |
cmd | nchar(16) | 当前正在执行的命令。 |
nt_domain | nchar(128) | 客户端的 Windows NT 4.0 域(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 域。 |
nt_username | nchar(128) | 进程的 Windows NT 4.0用户名(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 用户名。 |
net_address | nchar(12) | 指派给每个用户工作站上的网络接口卡唯一标识符。当用户登录时,该标识符插入net_address 列。 |
net_library | nchar(12) | 用于存储客户端网络库的列。每个客户端进程都在网络连接上进入。网络连接有一个与这些进程关联的网络库,该网络库使得这些进程可以建立连接。有关更多信息,请参见客户端和服务器 Net-Library。 |
loginame | nchar(128) | 登录名。 |