SQL Server with(nolock) 学习
1. with(nolock) 使用方法
问题:由于数据量过大,会产生数据锁死问题
解决方法:目的就是查询是不锁定表,从而达到提高查询速度的目的。
SELECT CONVERT ( VARCHAR ( 100 ), VW_BaoBiaoShuJu.LsTime, 23 ) AS DateNow, COUNT ( VW_BaoBiaoShuJu.ID ) AS TaskNums, SUM ( VW_BaoBiaoShuJu.MRealWeight ) AS TaskWeight FROM VW_BaoBiaoShuJu WITH (NOLOCK) WHERE VW_BaoBiaoShuJu.IsDelete = 0 AND VW_BaoBiaoShuJu.LsTime > '2023-01-01' AND VW_BaoBiaoShuJu.LsTime < '2023-12-27' GROUP BY CONVERT ( VARCHAR ( 100 ), VW_BaoBiaoShuJu.LsTime, 23 ) ORDER BY DateNow DESC
1、脏读
一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果就是脏读。
2、不可重复读
一个用户的一个操作是一个事务,这个事务分两次读取同一条记录,如果第一次读取后,有另外用户修改了这个数据,然后第二次读取的数据正好是其它用户修改的数据,这样造成两次读取的记录不同,如果事务中锁定这条记录就可以避免。
3、幻读
指用户读取一批记录的情况,用户两次查询同一条件的一批记录,第一次查询后,有其它用户对这批数据做了修改,方法可能是修改,删除,新增,第二次查询时,会发现第一次查询的记录条目有的不在第二次查询结果中,或者是第二次查询的条目不在第一次查询的内容中。
原文链接:
with(nolock)的用法
SQL Server 中WITH (NOLOCK)浅析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了