update罗致会话等待,站在卡死

update导致会话等待,站在卡死
本帖最后由 chen357313771 于 2015-09-09 12:00:55 编辑
工作中经常会遇到这种问题,并发,锁,导致性能下降乃至最后卡,今天遇到一个,记录日志,如果存在则更新否则插入,update 日志表(未加索引),130w数据。并发稍大点,导致等待,首先业务上不需要更新的或尽量避免这种更新,以后一定要谨记
update罗致会话等待,站在卡死

请各位大侠用专业术语帮忙解说一下
------解决思路----------------------
1、把存在的先delelt
2、再insert

试试这样效果怎么样
------解决思路----------------------
引用:
1、把存在的先delelt
2、再insert

试试这样效果怎么样

有可能这样会更好的.
------解决思路----------------------
所谓的日志就应该只插入不更新的,否则无论建不建索引都不合适。
建了更新太频繁,不见定位记录慢。
------解决思路----------------------

我觉得update语句之所以会等待,其实主要在于没有索引,于是每次都要先找到相应的记录,再更新,就只能全表扫描,后面的update操作就会被阻塞住,于是就产生了等待,类似你说的 卡死。

建了索引,主要的好处是,减少查找的时间,更快的找到记录然后更新,而且可以只锁住需要更新的记录,也不会锁住一大堆的记录,sql server的锁是一种资源,存放在内存中,如果锁住了很多条记录,锁就会升级成表级锁,就会产生严重的阻塞,而update又是针对日志,影响面很大。
------解决思路----------------------
这种情况应该是很多用户在访问,锁住了