前几日有站长反应,论坛http://bbs.linkhelper.cn老是突然打不开,一直在加载状态。telnet 80端口畅通,证明IIS没有问题。
登陆到服务器上,也不能正常打开论坛。
重启IIS后,能短暂恢复正常,然后又马上不正常了。
根据以往经验分析,估计是因为数据库有死锁造成。运行p_lockinfo存储过程,发现果真有死锁。
发现dnt_stats表有死锁情况。开始以为是论坛的统计程序出现问题,网上搜索DZ 死锁,没找到解决办法。
...
前几日有站长反应,论坛http://bbs.linkhelper.cn老是突然打不开,一直在加载状态。telnet 80端口畅通,证明IIS没有问题。
登陆到服务器上,也不能正常打开论坛。
重启IIS后,能短暂恢复正常,然后又马上不正常了。
根据以往经验分析,估计是因为数据库有死锁造成。运行p_lockinfo存储过程,发现果真有死锁。
发现dnt_stats表有死锁情况。开始以为是论坛的统计程序出现问题,网上搜索DZ 死锁,没找到解决办法。
...
最近发现数据库服务器压力很大,CPU经常达到100%。查看进程,发现有大量的sp_cursorclose;1进程信息。
网上查了下,出现sp_cursorclose;1一般是因为客户端代码中用到了游标所造成。
仔细检查了下站长帮手网的代码,发现所有的数据库打开方式都是rs.open sql,conn,1,1
其实代码中将查询出来并不需要分页,记录集也不需要向后滚动。于是将数据库打开方式改为rs.open sql,conn,0,1
0,1表示是只读的记录。效率是最快的。使用这种方法打开数据库后,发现sp_cursorclose;1出现大幅的减少。
...