关于锁

pbsh 2011-07-04 03:10:02
求教:Insert 必然会引起一个Key级的排它锁吗?什么情况下会导致Insert 语句长时间持有Key排它锁和Page意向排它?
...全文
153 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsh 2011-07-22
  • 打赏
  • 举报
回复
忘了结帖了。
原因是开发人员在Java里的事务忘了关。
mengmou 2011-07-17
  • 打赏
  • 举报
回复
当低粒度的对象上有排他锁时,对应高粒度的对象上必然有意向排他锁。

key指在索引的一行上加锁。insert在key上有排他锁已经是在最低粒度的对象上加锁,也就是最好的并发环境了。

事务不结束,锁就持续

可以用sql profiler跟踪一下,一目了然
weixy 2011-07-16
  • 打赏
  • 举报
回复
insert 肯定是排他锁,事务多长时间,key锁就多长时间。page锁是根据执行进行优化,锁的资源消耗比较大,如果系统发现行锁成本非常高(影响的行多)系统会自动升级为页锁
问题生 2011-07-04
  • 打赏
  • 举报
回复
记录行(rows),数据页(pages, 上百万记录行),扩展页(extends, 多个数据页)

我不知道你在insert的时候还并发了什么操作。不知道你是否使用了with的rowlock,nolock,readpast。
BigInt 2011-07-04
  • 打赏
  • 举报
回复
Insert 当然会引起一个Key级的排它锁

一般情况下,事务太大才会导致Insert 语句长时间持有Key排它锁和Page意向排它?

cd731107 2011-07-04
  • 打赏
  • 举报
回复
insert的时候肯定要排它的,对其他并发的读写都有影响
--小F-- 2011-07-04
  • 打赏
  • 举报
回复
高深的问题,。
pbsh 2011-07-04
  • 打赏
  • 举报
回复
在做Insert的并发压力测试,问题出来了。
挨踢直男 2011-07-04
  • 打赏
  • 举报
回复
连续插一亿条记录

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧