首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL update 语句更新有关问题

2013-06-19 
求助 SQL update 语句更新问题update 语句根据主键 更新一条记录时,用了20分钟还没完成。如 update table_a

求助 SQL update 语句更新问题
update 语句根据主键 更新一条记录时,用了20分钟还没完成。
如 update table_a set  col_b = 1000
where col_a = ‘A’

在执行过程中 ,select * from table_a  where col_a = ‘A’没问题。
查询其它列都没问题。
另外恢复一个数据库备份到其它地方,进行测试,update很快完成。
搞不明白为何出现这种问题?
[解决办法]
1、贴出update的执行计划,
2、进行update的时候执行select * from sys.sysprocesses where blocked<>0看看有没有阻塞
[解决办法]
sp_who2 看看有没有blockby
[解决办法]
查看SP_LOCK是否该表一直被X锁定而此时载UPDATE无法获得独占锁,可以考虑使用HINT(with  updlock)
[解决办法]
死锁?

不懂
[解决办法]

引用:
Quote: 引用:

1、贴出update的执行计划,
2、进行update的时候执行select * from sys.sysprocesses where blocked<>0看看有没有阻塞


怎么查看 死锁执行的语句
阻塞不一定就是死锁啊。阻塞通常是等待某些资源释放而已,死锁是既要等待,又持有别人需要的,形成一个死循环
[解决办法]
所以我说要查阻塞,不然你下次update还是有可能出现
[解决办法]
假设你找到了一个阻塞的spid,可以用DBCC INPUTBUFFER SPID来查看这个SPID是做什么的

热点排行