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

msSqlServer是怎么判断死锁的

2012-01-30 
msSqlServer是如何判断死锁的当对数据库并发访问的时候,当两个会话同时等待访问由其他会话锁定的资源时,便

msSqlServer是如何判断死锁的
当对数据库并发访问的时候,当两个会话同时等待访问由其他会话锁定的资源时,便会发生死锁。
当sql发现死锁的访问后,将选择其中一个会话作为死锁牺牲品来解决死锁.
这个是msSqlServer的基本功能,我想大多数人都有所了解,
我想问的是,msSqlServer自身是如何判断2个访问发生了死锁的啊,
我做了一个简单的存储过程,然后用并发去执行,超不过10次就提示,发生了死锁,我很不理解啊.
存储过程代码

SQL code
ALTER PROCEDURE [dbo].[test]  ASBEGIN    SET TRANSACTION ISOLATION LEVEL SERIALIZABLEBEGIN TRANSACTIONinsert dbo.temp(name) select top 1 id  from TransferInformation where RecordsState<>5declare @id intselect  @id=name from temp  where id= @@IDENTITYupdate TransferInformation set RecordsState=5 where Id=@id COMMIT TRANSACTIONEND

大家都是调用者一个存储过程,先调用的会对temp表上锁,然后其他的访问等待,等上一个事务结束后,下一个在执行,并没死锁的可能啊.......

[解决办法]
因为你笨
[解决办法]
死锁分析
http://blog.csdn.net/roy_88/article/details/2686724
[解决办法]
回大版,
小的猜想,楼主的本意是想测试死锁,而非优化程序吧.

热点排行