社区
应用实例
帖子详情
加上with(nolock)任何时候的查询速度都比不加快吗?
soldierluo
2013-05-12 03:08:52
加上with(nolock)任何时候的查询速度都比不加快吗?
但是我感觉不一定,我把所有的存储过程的查询都加with(nolock)后cpu反而100%,但是改一部分的话cpu视乎又能减少些,不确定到底是什么规律啊
请问,with(nolock)的使用到底要遵循什么样的规则,有什么办法可以直接测试加或不加两者间的效率差别
...全文
459
6
打赏
收藏
加上with(nolock)任何时候的查询速度都比不加快吗?
加上with(nolock)任何时候的查询速度都比不加快吗? 但是我感觉不一定,我把所有的存储过程的查询都加with(nolock)后cpu反而100%,但是改一部分的话cpu视乎又能减少些,不确定到底是什么规律啊 请问,with(nolock)的使用到底要遵循什么样的规则,有什么办法可以直接测试加或不加两者间的效率差别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
铁歌
2013-05-14
打赏
举报
回复
with (nolock)只是允许脏数据不锁表的一种查询并发机制,对性能缺少影响,CPU占用率高还是和SQL查询本身关系大。比如大表做分组聚合计算等。
gogodiy
2013-05-13
打赏
举报
回复
with(nolock)的主要作用是允许SELECT语句读取正在修改中的数据,也就是通常说的脏读(dirty read),对于数据修改数量很小而且对SELECT语句读出的数据精确性影响可以忽略的应用程序,可以使用这种方式来避免数据修改活动阻塞SELECT语句。 对于隔离级别来说,它允许SELECT语句读取数据而不需要请求(S)锁,既然不请求(S)锁,所以它既不会被(X)锁阻塞也不会阻塞(X)锁。
soldierluo
2013-05-13
打赏
举报
回复
那这个东西真是无迹可寻了,并发不是那么好测试的 其实现在感觉效果并不大,现在大概每秒10次的访问
發糞塗牆
2013-05-12
打赏
举报
回复
如果完全没有并发存在,那么with(nolock)其实没啥效果的,你要在并发环境才看到效果,至于CPU100%,有可能是其他影响的,所以这个要监控才行,不能马上下判断说是with(nolock)引起的
Andy-W
2013-05-12
打赏
举报
回复
with(nolock) ,对查询的资源不加锁(共享锁),它是降低事务隔离级别,相等于 set transaction isolation level read uncommitted
發糞塗牆
2013-05-12
打赏
举报
回复
不能太绝对,凡是要具体问题具体分析
mysql with no
lock
,SQL
查询
语句为什么要
加上
with(no
lock
)?
今天在
查询
数据库的时候,向开发要了一条
查询
语句,发现在语句表的后面有with(no
lock
),不知道这是干啥用的,之前没遇到过,所以就差了下:大家在写
查询
时,为了性能,往往会在表后面加一个no
lock
,或者是with(no
lock
),其目的就是
查询
是不锁定表,从而达到提高
查询
速度
的目的。接下来再来继续深入的了解下这个玩意吧为什么会在
查询
的表后面加no
lock
标识?答:为了避免并发访问产生的不利...
WITH (NO
LOCK
)提高
查询
效率
WITH (NO
LOCK
) 有时候在进行大数据量插入或修改时,
查询
速度
会很慢,这是因为数据库加了锁,可以在select 的时候
加上
WITH (NO
LOCK
)来提高
查询
速度
缺点: 1.会产生脏读 2.只适用与select
查询
语句 优点: 1.有些文件说,加了WITH (NO
LOCK
)的SQL
查询
效率可以增加33%。 2.可以用于inner join 语句 脏读: 一...
SQL Server with(no
lock
)详解
SQL Server with(no
lock
)详解 大家在写
查询
时,为了性能,往往会在表后面加一个no
lock
,或者是with(no
lock
),其目的就是
查询
是不锁定表,从而达到提高
查询
速度
的目的。 什么是并发访问:同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改,此时就会对其它用户产生某些不利的影响,例如: 1:脏读,一个用户对一个资源做了修改,此时另外一个用户正好读取...
with(no
lock
)的用法
指用户读取一批记录的情况,用户两次
查询
同一条件的一批记录,第一次
查询
后,有其它用户对这批数据做了修改,方法可能是修改,删除,新增,第二次
查询
时,会发现第一次
查询
的记录条目有的不在第二次
查询
结果中,或者是第二次
查询
的条目不在第一次
查询
的内容中。一个用户的一个操作是一个事务,这个事务分两次读取同一条记录,如果第一次读取后,有另外用户修改了这个数据,然后第二次读取的数据正好是其它用户修改的数据,这样造成两次读取的记录不同,如果事务中锁定这条记录就可以避免。四、no
lock
和with(no
lock
)的几个小区别。
说说with(no
lock
)的使用
with(no
lock
)其实是表提示(表提示table hint指的是通过指定锁定方法、一个或多个索引、
查询
处理操作(如表扫描或索引查找)或其他选项,表提示可在数据操作语言 (DML) 语句执行期间覆盖
查询
优化器的默认行为。)中的一种。它等同于数据库的4种事务隔离级别中的READ UNCOMMITTED(读未提交)。
应用实例
27,579
社区成员
68,558
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章