select 语句会对数据加锁吗?

up369 2014-04-25 09:58:12
比如:select a.name , b.je , b.id , b.bz , b.lx from tab01kh a , t02iccard b where a.id =b.kh_id and b.iccard ='0000005395' and b.xlh ='7FE31C2' and b.bz < 2
上面语句查询时,如果此时其它客户向a或b表插入数据或更新数据、查询数据,是否会产生阻塞?
...全文
4844 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2014-04-26
  • 打赏
  • 举报
回复
加锁是肯定的,select 语句加的是共享锁,也就是大家常说的 S 锁,也是别的会话在当前会话查询的同时,也可以查询同一条记录,只是查询,不能修改,因为修改记录,要得到行的独占锁,也不能删除你的查询结果中的记录,可以插入新记录。
發糞塗牆 2014-04-25
  • 打赏
  • 举报
回复 2
看事务的范围和隔离级别。
水族杰纶 2014-04-25
  • 打赏
  • 举报
回复
1)默认情况加锁除非指定nolock 或者时uncommited事务级别 2)是否会对update ,insert造成堵塞 要看相互申请的资源是否是同一种 3)同时要看锁的粒度 比如select update insert都是操作 同一页面 select 在页面上会有S锁 堵塞X锁 ,如果select 持有的是表锁 更加会堵塞,这些可以依靠索引,事务,等调整锁的粒度 尽量减少堵塞的时间
KeepSayingNo 2014-04-25
  • 打赏
  • 举报
回复
读的时候不影响其他用户的写和更新操作
KevinLiu 2014-04-25
  • 打赏
  • 举报
回复
取决于你的隔离级别,默认是加S锁的。 When you don’t want that readers are acquiring S locks (which isn’t really recommended), you can use the Isolation Level Read Uncommitted.
  • 打赏
  • 举报
回复
sql查询的时候会加S锁,查询解锁后,会释放S锁。至于会不会形成阻塞,那要看你的select语句有没有执行完毕,阻塞多长时间要看你sql语句的执行效率
cy2889792 2014-04-25
  • 打赏
  • 举报
回复
肯定会产生阻塞,但是加了一个关键字可以不锁表查询 如你的语句,改成下面这样就可以了,就完全不会有阻塞

select a.name , b.je , b.id , b.bz , b.lx from tab01kh a (NOLOCK), t02iccard b (NOLOCK) where a.id =b.kh_id and b.iccard ='0000005395' and b.xlh ='7FE31C2' and b.bz < 2 
注意关键字(NOLOCK) 给分吧,楼主
无涯大者 2014-04-25
  • 打赏
  • 举报
回复
加了索引一般都有排序,容易进行定位。 从数据来讲,我觉得加索引提高查询速率,有两个方面: 1.通过减少I/O,降低db_block访问量,加快数据存取效率从来来加快sql执行效率。 2.有些索引会对数据进行物理排序等操作,牺牲少量维护空间的代价来有效减少查询时的计算量。 从结构来看,树形的查询也是比线行的查询效率要高效。
發糞塗牆 2014-04-25
  • 打赏
  • 举报
回复
减少查询的时间,锁持有的时间理论上就减少了,这样阻塞的机会就少了。另外有索引的话,很多情况下不需要锁住整个表。只需要锁住所需的行
up369 2014-04-25
  • 打赏
  • 举报
回复
引用 4 楼 wufeng4552 的回复:
1)默认情况加锁除非指定nolock 或者时uncommited事务级别 2)是否会对update ,insert造成堵塞 要看相互申请的资源是否是同一种 3)同时要看锁的粒度 比如select update insert都是操作 同一页面 select 在页面上会有S锁 堵塞X锁 ,如果select 持有的是表锁 更加会堵塞,这些可以依靠索引,事务,等调整锁的粒度 尽量减少堵塞的时间
为什么加索引会减少阻塞?原理是什么?

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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