根据查询相关资料信息,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(脏读)。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)