今天在论坛看到一篇文章问到为什么SQL Server系统的SESSION ID是从1到50的,以前看过文章,这些Session是SQL Server为了运行系统活动比如((lazy writer, ghost record cleanup, DTC commit/abort),所以会保留50 Session ID给SQL Server使用,用户会话从51开始。 在2005之前查询用户会话使用: select * from sysprocesses wherespid < 50 但是在SQL Server 2005之后已经没有这个限制了,我在MSDN上找到了下面这篇文章:How It Works: System Sessions Looking at a SQL Server error log it is formatted with the
date,
time and
session identifier. Many of the identifiers contain the
s following the spid value.
2008-01-08 20:03:36.12 spid5s
The
s indicates that the session is a system session. Prior to SQL Server 2005 all system sessions were limited to session ids less than 50. SQL Server 2005 lifted that restriction. In order identify a session performing system actives (lazy writer, ghost record cleanup, DTC commit/abort, ...) the sessions are identified as system sessions.Instead of the older
"select * from sysprocesses where spid < 50" you should use "
select * from sys.dm_exec_sessions where is_user_process = 0" to identify system processes. 根据上面的讲法系统Session ID有可能超过50,所以查询用户Session ID使用 select * from sys.dm_exec_sessionswhereis_user_process= 1
| is_user_process | bit | 如果会话是系统会话,则为 0。否则,为 1。不可为空值 |
更多信息参考:http://msdn.microsoft.com/zh-cn/library/ms176013(v=sql.90).aspx使用sp_monitor 查看SQL Server统计信息基于时间的备份保留策略的rman研究相关资讯 SQL Server SQL Server教程 SQL Server管理
- Build2016喜讯:Linux用户注册微软 (03月17日)
- SQL Server on Linux 理由浅析 (03月09日)
- 管理SQL Server服务的登录(启动) (02月13日)
| - 微软要抢甲骨文用户?从Oracle迁移 (03月13日)
- 微软发布面向Linux的SQL Server预 (03月08日)
- SQL Server如何修改自增列值以及相 (01月23日)
|
本文评论 查看全部评论 (0)