求高手解决服务器问题。最近网站特别卡,数据库经常锁死,求高手指点!!!!数据库是sqlserver2000。

服务器几百万买的,硬件配置没问题。cup使用率很低,网速也没问题,丢电信托管的。但是数据库经常出现死锁的情况。
用户天天都在反映系统卡,如果把sqlserver2000换成sqlserver2008能解决问题吗?
能解决问题的话再追加财富点。
谢谢大家,追加50分,求大家再帮忙想想!

非常感谢瑞致和、szm341!大哥们,能指条明路吗?我第一步该做什么,第二步该做什么。。。。详细点!

再追加50分,谢谢!谢谢!!!

死锁一般是编程及优化方面的问题,用引擎优化顾问(不知道2000有没有呵呵)优化一下索引看看
一般死锁在数据库中会瞬间被解除,客户反映的卡应该属于阻塞,你应该往优化方面考虑
用profiler检测一下耗时的严重的语句,想办法优化业务流程以及数据处理流程
2008性能方面肯定是优于2000的,但是如果你程序设计的很烂的话,再优越也体现不出来追问

业务流程以及数据处理流程的优化基本上不可能啊,只能从其他方面来考虑。

追答

除了硬件方便就只有数据库结构及编程方面的优化了,这都不可能你想通过什么方式呢?
结构方面就是上面提的优化一下索引,编程方面就涉及到数据库锁知识了,这个你要自己渗透
如楼下说的脏读问题,不过他恰恰说返了,允许脏读正是缓解数据库阻塞与死锁的一个手段,
但是要根据你的业务流程来决定,比如银行一类的系统,涉及到金额方面的就不能允许脏读
----------------
我上面提的已经很清楚了,首先用profiler确认问题,是你所谓的死锁导致的还是我说的阻塞导致
然后利用引擎优化顾问来优化一下索引,优化索引可以达到优化阻塞及死锁的效果
再者,根据优化后的效果,如果还是不佳可以考虑允许数据脏读,就是查询时在表名后面加with(nolock),但也要根据实际业务慎用

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-21
以前有没有类似情况?
没有的话
1:被DDOS攻击了,查看下防火墙和网站流量是否异常。
2:sqlserver数据库效率不会差很远,没必要换。你看下程序是否有代码出现脏读的情况!这样导致数据库死锁!追问

以前不觉得卡,就前一久增加了一个系统,和原来的系统共同使用一个数据库,就开始卡了。
网速是没问题的,也没发现被攻击。
您说的代码出现脏读我不太理解,是不是指死循环?

追答

比如A代码改了一个数据没提交事务,B代码去读这个数据,结果就会很卡,你可以用代码试试!

第2个回答  2013-06-21
你这个情况,先要从数据库本身的语句优化开始,不知道你能不能拿到事件探查器的内容,这个非常关键。对于消耗资源的语句,着重分析其执行计划情况,出现阻塞或死锁有很多种情况,比如索引运用不当,长时间的事务,不同的访问顺序等,当然也可以让索引优化器这个工具来帮你的忙。
相似回答