系统进程和用户进程的区分

pbsh 2009-11-05 10:10:51
如何区分sys.sysprocesses中哪些是系统进程,哪些是用户进程?

1、进程启动时间?(登录时间为服务启动时间的为系统进程?)
2、没有Hostname的进程(系统进程)?

好像没有明显的标识字段。
...全文
345 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2009-11-05
  • 打赏
  • 举报
回复
SPID = 1-50 分配给系统管理线程,如 LAZY WRITER、LOCK MONITOR 等,而大于 50 的 SPID 分配给用户会话,所有孤立 DTC 事务的 SPID = -2(孤立 DTC 事务是不与任何 SPID 相关联的分布式事务)。
urdoom 2009-11-05
  • 打赏
  • 举报
回复
不过我还是觉得用系统内建的判断好的结果比较好

目前我们总结的规律属于不完全归纳法,不一定100%适用
urdoom 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 pbsh 的回复:]
引用 9 楼 urdoom 的回复:
SQL codeselect*from sys.sysprocesses awhere a.spidin (select session_idfrom sys.dm_exec_sessionswhere is_user_process=1)


select *
from sys.sysprocesses
where hostname <>''

两个语句效果相同。

应该说明所有hostname为空的进程都是系统进程。

谢谢urdoom。
[/Quote]

恩,除了hostname
program_name,
hostprocess,
nt_domain,
nt_username,
net_address,
net_library
这几个项目系统进程也是空的
navy887 2009-11-05
  • 打赏
  • 举报
回复
--列出所有活动的用户
SP_WHO 'active'

--列出某个特定用户的信息
SP_WHO 'sa'


是不是需要这个
pbsh 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 urdoom 的回复:]
SQL codeselect*from sys.sysprocesses awhere a.spidin (select session_idfrom sys.dm_exec_sessionswhere is_user_process=1)
[/Quote]

select *
from sys.sysprocesses
where hostname<>''

两个语句效果相同。

应该说明所有hostname为空的进程都是系统进程。

谢谢urdoom。
urdoom 2009-11-05
  • 打赏
  • 举报
回复

select * from sys.sysprocesses a
where a.spid in (select session_id from sys.dm_exec_sessions
where is_user_process = 1)
--小F-- 2009-11-05
  • 打赏
  • 举报
回复
select session_id,cpu_time 
from sys.dm_exec_requests
pbsh 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xiequan2 的回复:]
引用楼主 pbsh 的回复:
如何区分sys.sysprocesses中哪些是系统进程,哪些是用户进程?

1、进程启动时间?(登录时间为服务启动时间的为系统进程?)
2、没有Hostname的进程(系统进程)?

好像没有明显的标识字段。
SQL codeselect login_timefrom sys.sysprocesseswhere spid=1

服务器的启动时间
[/Quote]

谢谢,这个知道。

就是不知道用什么方法区分,我提供的两个原则应该都是系统进程,但是怕有遗漏。
xiequan2 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 pbsh 的回复:]
如何区分sys.sysprocesses中哪些是系统进程,哪些是用户进程?

1、进程启动时间?(登录时间为服务启动时间的为系统进程?)
2、没有Hostname的进程(系统进程)?

好像没有明显的标识字段。
[/Quote]
select login_time from sys.sysprocesses where spid=1

服务器的启动时间
pbsh 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]
http://blog.csdn.net/wobuwei/archive/2009/07/29/4389639.aspx
[/Quote]

谢谢水哥,不是要这个。
pbsh 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wufeng4552 的回复:]
@@spid
返回当前用户进程会话ID

[/Quote]

我是要统计数据库所有用户进程的情况,不是当前窗口进程一个。
水族杰纶 2009-11-05
  • 打赏
  • 举报
回复
@@spid
返回当前用户进程会话ID
--小F-- 2009-11-05
  • 打赏
  • 举报
回复
学习

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧