请选择 进入手机版 | 继续访问电脑版
用户
 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 2326|回复: 1

数据库报错:客户端无法重新使用SPID为51的会话,该会话已被重置用于连接池……

[复制链接]

9

主题

9

帖子

251

积分

超级版主

Rank: 8Rank: 8

积分
251
发表于 2017-9-7 10:44:23 | 显示全部楼层 |阅读模式

建议看看数据库缓存,增大连接数
SPID50以下是被系统会话使用的,大于50的是用户连接会话,这个错误应该是用户连接池的问题

参考设置最大连接数

一、设置最大连接数

下面的T-SQL 语句可以配置SQL Server 允许的并发用户连接的最大数目。

exec sp_configure 'show advanced options', 1exec sp_configure 'user connections', 100

第一句用以表示显示sp_configure 系统存储过程高级选项,使用user connections时,要求show advanced options值为1。

第二句配置最大连接数为100,0 表示不限制,但不表示无限,后面将谈谈。

也可以在企业管理器中配置,在企业管理器中,可以在实例上点右键->“属性”->“连接”里面更改。

需要重新启动SQL Server,该值才会生效。

@@max_connections
select @@max_connections

它总是返回32767,它并不是指上面设置的user connections,实际上它表示user connections 最大可设置为多少。由于它的最大值是32767,那么user connections为0 时,最大连接数也就是32767 了,并不是无限。

默认情况下user connections 值是0,也就是说默认情况下SQL Server 的最大连接数是32767。

二、获得当前设置的最大连接数:

select value from master.dbo.sysconfigures where [config]=103

三、如何监测SQLServer的连接数

/*查询连接数*/select loginame,count(1) as Numsfrom sys.sysprocessesgroup by loginameorder by 2 descselect spid,ecid,status,loginame,hostname,cmd,request_id from sys.sysprocesses where loginame='' and hostname=''

方法二:

SP_WHO 'loginName'

loginName是当然登陆Sql的用户名,一般程序里面都会使用一个username来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。

如果不写loginName,那么返回的就是所有的连接。

既然连接数是可预测、可监测的,那么它就是可度量的,那么我们就可以根据实际情况来评估或测试程序的并发放量了。


QQ图片20170907102400.jpg
回复

使用道具 举报

0

主题

8

帖子

718

积分

中级会员

Rank: 3Rank: 3

积分
718
发表于 2019-1-10 11:51:33 | 显示全部楼层
众里寻他千百度,蓦然回首在这里!












实习
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则