博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server System Session ID是不是1-50?
阅读量:7200 次
发布时间:2019-06-29

本文共 1245 字,大约阅读时间需要 4 分钟。

今天在论坛看到一篇文章问到为什么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 datetime and session identifier. Many of the identifiers contain the s following the spid value.

2008-01-08 20:03:36.12 spid5s

The 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。不可为空值

 

更多信息参考:

本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1021521

转载地址:http://cfcum.baihongyu.com/

你可能感兴趣的文章
工作记录--WPF自定义控件,实现一个可设置编辑模式的TextBox
查看>>
【LeetCode每天一题】Validate Binary Search Tree(有效的二叉搜索树)
查看>>
git学习笔记
查看>>
高手教你恢复误删文件的秘籍
查看>>
接口服务中的日志
查看>>
MyCAT部署及实现读写分离(转)
查看>>
多个(子)进程的开启,进程的常用属性和方法
查看>>
netty入门05
查看>>
python 局部变量和全局变量
查看>>
CSS样式
查看>>
推荐算法——非负矩阵分解(NMF)
查看>>
javascript中if和switch,==和===详解
查看>>
python写api接口测试之tonador
查看>>
ibatis初识
查看>>
hdu 1950 Bridging signals
查看>>
poj - 1442 Black Box
查看>>
js replaceChild
查看>>
个人简介
查看>>
Ubuntu卡在Logo界面
查看>>
DjangoRestFramework 学习之restful规范 APIview 解析器组件 Postman等
查看>>