摘要: insert语句: 其上锁情况为: insert语句会对表上的所有索引作出更新,因此这里看到的索引列较多,我们先把所有的索引搞出来看看: 可以看到所有索引都涉及到了,然后我们来仔细分析下加锁情况: 1.表1717581157添加了表级的IX锁,这里objid为41查出来的是NULL表名,不做讨论。 阅读全文
posted @ 2017-06-21 15:38 realcp1018 阅读(2608) 评论(0) 推荐(0) 编辑
摘要: update语句: 本例中由于看到的是update执行完的锁情况,因此无法看到IU锁,但其实针对要修改的数据页和索引页会先加IU锁,记录和键先加U锁,然后再转化为IX和X锁。 如果想要看到IU锁和U锁,可以在update中使用索引列的过滤条件但不更新索引列来实现,这样你可以通过sp_lock看到索引 阅读全文
posted @ 2017-06-21 15:36 realcp1018 阅读(3234) 评论(0) 推荐(1) 编辑
摘要: 本例中使用begin tran和with (holdlock)提示来观察SQL Server在select语句中的锁。 开启事务是为了保证时间极短的查询也能观察到锁情况,holdlock相当于开启序列化事务隔离级别,只有在提交后才会释放锁,且对索引加键范围锁防止幻读。 1. 查询主键索引的selec 阅读全文
posted @ 2017-06-21 15:32 realcp1018 阅读(5597) 评论(1) 推荐(0) 编辑