with(nolock)查询变慢?

with(nolock)查询变慢?,第1张

是数据库加了锁。

根据查询相关资料信息,with查询变慢数据库加了锁。在select的时候加上WITH来提高查询速度。

开发人员喜欢在SQL脚本中使用WITH,WITH其实是表提示中的一种。它等同于READUNCOMMITTED。

sqlsever

一个窗口

set Transaction

insert 一条数据

事务没有结束(end transaction)!

另外一个窗口

select * from a with NOLOCK

可以发现那个insert的数据。。

区别是:跨服务器查询语句时 不能用with (nolock) 只能用nolock同一个服务器查询时 则with (nolock)和nolock都可以用。比如select * from [IP].a.dbo.table1 with (nolock) 这样会提示用错误。select * from a.dbo.table1 with (nolock) 这样就可以。要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑。其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能。不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成Dirty Read(脏读)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8533005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存