站点即将崩溃,sql server进程数超过130!英雄!救命!

SELECTSPID 2006-03-09 10:36:14
我的站点5分钟同时在线人数约200人左右
服务器配置xeon2.4 X 2 1G内存
web服务:IIS5 asp + sql server 2000
cpu常年100%~~~~~~~
绝大部分是sql server占用的
查了一下当前活动,有132个进程

请问各位英雄:

sqlserver进程是怎么产生的?有哪些原因会造成我的sqlserver上出现这么多进程?

另外:正常的一个中小型站点(sql server),它的sql server的进程数应该在什么范围内?
...全文
527 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
SELECTSPID 2006-03-10
  • 打赏
  • 举报
回复
的确活动连接很少

连接总数130左右,活动连接却20都不到

只是不知道怎么让sql server自动释放连接?怎么设置呢?

盼复,万分感谢!
SELECTSPID 2006-03-10
  • 打赏
  • 举报
回复
太感谢楼上了!!!

只是不知道怎么释放连接??盼复





万分感谢

efly75 2006-03-10
  • 打赏
  • 举报
回复
进程数太多可能是连接没有及时释放造成的。 你可以使用sp_who active查看当前活动的进程数是多少。象你说这种服务器,按理说连接数(就是你说的进程数)应该在40以下,活动进程一般不会超过5个(系统进程不算)。

如果cpu超过常年100%,肯定是存在不少效率低下的SQL语句(估计是没能利用索引)。建议你使用事件探查器监视那些cpu超过500的SQL语句,看看能否优化。

mary0226 2006-03-10
  • 打赏
  • 举报
回复
我也想知道
关注
  • 打赏
  • 举报
回复
我现在是在做软件维护工作的,是其它公司开发的软件,根本不可能说是去改代码释放资源的,
有没有其它的办法?
wangdehao 2006-03-10
  • 打赏
  • 举报
回复
Mark
xiayouguo 2006-03-10
  • 打赏
  • 举报
回复
好帖,先顶后收藏
zhanglth 2006-03-10
  • 打赏
  • 举报
回复
关注~~~~~~~~
zjcxc 2006-03-10
  • 打赏
  • 举报
回复
1. 如果条件许可, 首先把iis和sql server分到两台服务器中, 这样可以避免两者互相影响, 也有利于查找直接的原因.(例如, 由于IIS工作缓慢, 可能会导致不断的向sql发请求, 这样看起来似乎就是sql server的问题)

2. 如果要查询是否连接没有释放引起的, 你可以用查询分析器连接到你的数据库服务器, 执行下面的代码:
select * from master.dbo.sysprocesses
where spid>50
and waittype = 0x0000
and waittime = 0
and status = 'sleeping'
and last_batch < dateadd(minute, -10, getdate())
and login_time < dateadd(minute, -10, getdate())

如果这样的进程很多, 则说明连接确实有很多连接没有释放(上面的查询查询出已经超过10分钟都没有做任何动作的连接)


3. 如果确实是连接没有释放的问题, 你可以硬行释放连接, 不一定要改程序. 在sql server中, 创建一个job, 每10分钟一次, 执行下面的代码来定时检查并释放掉空连接就可以了:
declare hcforeach cursor global
for
select 'kill ' + rtrim(spid) from master.dbo.sysprocesses
where spid>50
and waittype = 0x0000
and waittime = 0
and status = 'sleeping'
and last_batch < dateadd(minute, -60, getdate())
and login_time < dateadd(minute, -60, getdate())
exec sp_msforeach_worker '?'
suntt 2006-03-10
  • 打赏
  • 举报
回复
查看自己前端程序是否及时的释放了数据库资源


efly75 2006-03-10
  • 打赏
  • 举报
回复
连接释放只能通过修改程序进行。 如果是asp的程序,应该是可以直接修改源代码的。

连接的释放,一般都是把ado的connection对象的连接关闭(好象是close方法),再设置为nothing就可以了。

如果你不能修改源代码,那就没什么办法了。

不过,你服务器的cpu经常100%的问题,与连接应该没有太大关系。请参考我上次的回复。

22,300

社区成员

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

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