with nolock 相当于 READ UNCOMMITTED事务隔离级别.
注:
----------------------------------------------
READUNCOMMITTED
指定允许脏读。这表示不发放共享锁,也不遵守排它锁。允许脏读会导致更高的并发性,但会降低一致性。如果指定了 READUNCOMMITTED,就有可能读取未提交的事务,或读取在读取过程中回滚的一套页,因此可能出现错误信息。
----------------------------------------------
优点:
sql查询时使用with(nolock)是不锁定表,从而达到提高查询速度的目的。
缺点:
NOLOCK 语句执行时可能读脏数据。
适用场景:
1、不需要经常变动的信息,如
2、允许脏数据存在的情况,如新闻数据信息。
3、数据量特别大的表,查询加上nolock可以大大提升性能和用户体验,当然,它是以牺牲数据一致性和安全性来提升性能的。
分享到:
相关推荐
EFCore.SqlServer.WithNoLock
处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST,本文将介绍有关 NOLOCK 和 READPAST的一些技术知识点,需要的朋友可以参考下
缺点: 1.会产生脏读 2.只适用与select查询语句 优点: 1.有些文件说,加了WITH (NOLOCK)的SQL...其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环
其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能。 不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT...
SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)
SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)
An intent lock indicates that SQL Server wants to acquire a shared (S) lock or exclusive (X) lock on some of the resources lower down in the hierarchy. For example, a shared intent lock placed at the ...
SELECT ca.code,ca.name,ca.ParentCode,az.name,az.latitude,az.longitude FROM CarArea ca WITH(NOLOCK) LEFT JOIN ( SELECT * FROM AreaZoon WITH(NOLOCK) WHERE parentCode='0' ) az ON az.proshortname=ca....
select * from dbo.UserInfo with (nolock) HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放 NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别
代码如下:SET @SQL = ‘SELECT * FROM Comment with(nolock) WHERE 1=1 And (@ProjectIds Is Null or ProjectId = @ProjectIds) And (@Scores is null or Score =@Scores)’ 印象中记得,以前在做Oracle开发时,...
代码如下:–获取表的count信息select count(*) from T with(nolock) –获取特定值的count信息select count(*) from T with(nolock)where v = ‘–value’ –获取表’T’的count信息select count(*) from T with...
效率问题:在对象映射上作了缓存处理,查询效率几乎等于手写SQL效率,注:CRL对象查询默认是 with(nolock) 数据安全:所有标准查询都经过参数化处理,无注入风险 动态存储过程支持与查询转换,极大减少了数据库维护工作,...
效率问题:在对象映射上作了缓存处理,查询效率几乎等于手写SQL效率,注:CRL对象查询默认是 with(nolock) 动态存储过程支持与查询转换,极大减少了数据库维护工作,增加开发效率 最新版本请关注:...
//" inner join CR_Site b with (nolock) on a.CreatedSite = b.SiteId" + " where a.DepDesc like '" + SqlObject.Encode(obj2.DepDesc) + "%'" + " and a.DepCd like '" + SqlObject.Encode(obj2.DepCd) + "%'...
代码如下: –代码一DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC) AS RowIndex INTO #tb FROM news WITH(NOLOCK) WHERE NewsTypeId=@NewsTypeId AND IsShow=1 SET @cc = @@ROWCOUNT ...
运行效率:在对象映射上作了缓存处理,查询效率几乎等于手写SQL效率,注:CRL对象查询默认是 with(nolock) 数据安全:所有标准查询都经过参数化处理,无注入风险 动态编译:数据表自动创建/动态存储过程支持与查询转换,极大...
SELECT * FROM Customer WITH (NOLOCK) 结果中显示”a”和”a”。当1中事务回滚后,那么a将成为脏数据。(注:1中的事务未提交) 。NOLOCK表明没有对数据表添加共享锁以阻止其它事务对数据表数据的修改。 SELECT * ...