首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏软测小生

    SQL查询语句为什么要加上with(nolock)?

    今天在查询数据库的时候,向开发要了一条查询语句,发现在语句表的后面有with(nolock),不知道这是干啥用的,之前没遇到过,所以就差了下: 大家在写查询时,为了性能,往往会在表后面加一个nolock 接下来再来继续深入的了解下这个玩意吧 为什么会在查询的表后面加nolock标识? 小结:NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别 。nolock确实在查询时能提高速度,但它并不是没有缺点的,起码它会引起脏读。 最后说下nolock和with(nolock)的几个小区别: 1:SQL05中的同义词,只支持with(nolock); 2:with(nolock)的写法非常容易再指定索引。 跨服务器查询语句时 不能用with (nolock) 只能用nolock 同一个服务器查询时 则with (nolock)和nolock都可以用 比如SQL code: select * from

    7.8K60发布于 2019-07-05
  • 来自专栏互联网开发者交流社区

    复杂SQL代码实例

    [Account] a WITH ( NOLOCK ) LEFT JOIN BBCFinance.dbo.AccountAdjustReceipt b WITH ( NOLOCK ) ON ) ON a.DistributorSysNo=distributor.SysNo LEFT JOIN BBCAccount.dbo.Vendor vendor WITH(NOLOCK) [Account] a WITH ( NOLOCK ) LEFT JOIN BBCFinance.dbo.AccountAdjustReceipt b WITH ( NOLOCK ) ON ) ON a.DistributorSysNo=distributor.SysNo LEFT JOIN BBCAccount.dbo.Vendor vendor WITH(NOLOCK) [Account] a WITH ( NOLOCK ) LEFT JOIN BBCAccount.dbo.BusinessType BU WITH ( NOLOCK

    1.2K20发布于 2018-07-04
  • 来自专栏landv

    金蝶K/3 审批相关SQL语句

    select xt.fuserid ,xt.fname,u.fname as fusername ,e.FName as fempname from t_xuntong_user xt with (nolock ) inner join t_user u with (nolock) on xt.fuserid=u.fuserid inner join t_Emp e with(nolock) on u.FEmpID=e.FItemID inner join t_Emp e with(nolock) on u.FEmpID=e.FItemID left join icclasstype i2 with (nolock) on i2.FID=t1.FClassTypeID where 1=1

    89510发布于 2018-08-20
  • 来自专栏JAVA葵花宝典

    实战:上亿数据如何秒查

    FROM fn_String_To_Table(@LotName,',',1) SELECT LotPK,LotName INTO #WorkLotPK FROM MMLots WITH(NOLOCK SourceLotPK只能在这里求 SELECT a.LotPK,a.SourceLotPK into #WorkSourcePK FROM MMLotOperations a WITH(NOLOCK )类似[先根据外部序列号求解序列号,再照搬第一个判断变量的方式] SELECT LotPK,LotName INTO #WorkLotPKX FROM MMLots WITH(NOLOCK ,b.LotName AS SourceLotName,NULL FROM #WorkSourcePK2X a JOIN (SELECT LotPK,LotName FROM MMLots WITH(NOLOCK 本文的优化思想很简单,关键点是避免全表扫描 & 注重SQL语句写法 & 索引,另外,如果你查询的表有可能会在查询时段更新,而实际业务需求允许脏读,可加with(nolock)预防查询被更新事物阻塞。

    1.4K40发布于 2020-10-09
  • 来自专栏开发者技术前线

    上亿数据如何做到毫秒级查询?

    FROM fn_String_To_Table(@LotName,',',1) SELECT LotPK,LotName INTO #WorkLotPK FROM MMLots WITH(NOLOCK SourceLotPK只能在这里求 SELECT a.LotPK,a.SourceLotPK into #WorkSourcePK FROM MMLotOperations a WITH(NOLOCK )类似[先根据外部序列号求解序列号,再照搬第一个判断变量的方式] SELECT LotPK,LotName INTO #WorkLotPKX FROM MMLots WITH(NOLOCK ,b.LotName AS SourceLotName,NULL FROM #WorkSourcePK2X a JOIN (SELECT LotPK,LotName FROM MMLots WITH(NOLOCK 本文的优化思想很简单,关键点是避免全表扫描 & 注重SQL语句写法 & 索引,另外,如果你查询的表有可能会在查询时段更新,而实际业务需求允许脏读,可加with(nolock)预防查询被更新事物阻塞。

    1.1K20发布于 2020-11-24
  • 来自专栏跟着阿笨一起玩NET

    SQL语句使用总结(一)

    二、with (nolock)的介绍和使用。 为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。 nolock确实在查询时能提高速度,但它并不是没有缺点的,起码它会引起脏读。 最后说下nolock和with(nolock)的几个小区别: 1:SQL05中的同义词,只支持with(nolock); 2:with(nolock)的写法非常容易再指定索引。 跨服务器查询语句时 不能用with (nolock) 只能用nolock 同一个服务器查询时 则with (nolock)和nolock都可以用 比如 SQL code select * from [IP].a.dbo.table1 with (nolock) 这样会提示用错误select * from a.dbo.table1 with (nolock) 这样就可以  三、数据表死锁 如果对某一个进行了事务操作

    1.2K10发布于 2018-09-18
  • 来自专栏bit哲学院

    C++ Unicode SBCS 函数对照表,以备日后查阅

    fputc  fputwc  _fputtc_nolock  _fputc_nolock  _fputwc_nolock  _fputtchar  _fputchar  _fputwchar  _fputts   _getc_nolock  _getwc_nolock  _gettch  _getch  _getwch  _gettch_nolock  _getch_nolock  _getwch_nolock   _gettchar  getchar  getwchar  _gettchar_nolock  _getchar_nolock  _getwchar_nolock  _gettche  _getche   _putc_nolock  _putwc_nolock  _puttch  _putch  _putwch  _puttch_nolock  _putch_nolock  _putwch_nolock   _ungetc_nolock  _ungetwc_nolock  _ungettch  _ungetch  _ungetwch  _ungettch_nolock  _ungetch_nolock 

    69240发布于 2021-02-19
  • 来自专栏bit哲学院

    C++ Unicode SBCS 函数对照表,以备日后查阅

    fputc  fputwc  _fputtc_nolock  _fputc_nolock  _fputwc_nolock  _fputtchar  _fputchar  _fputwchar  _fputts   _getc_nolock  _getwc_nolock  _gettch  _getch  _getwch  _gettch_nolock  _getch_nolock  _getwch_nolock   _gettchar  getchar  getwchar  _gettchar_nolock  _getchar_nolock  _getwchar_nolock  _gettche  _getche   _putc_nolock  _putwc_nolock  _puttch  _putch  _putwch  _puttch_nolock  _putch_nolock  _putwch_nolock   _ungetc_nolock  _ungetwc_nolock  _ungettch  _ungetch  _ungetwch  _ungettch_nolock  _ungetch_nolock 

    60620发布于 2021-02-19
  • 来自专栏对线JAVA面试

    调优实战:上亿数据如何秒查

    FROM fn_String_To_Table(@LotName,',',1) SELECT LotPK,LotName INTO #WorkLotPK FROM MMLots WITH(NOLOCK SourceLotPK只能在这里求 SELECT a.LotPK,a.SourceLotPK into #WorkSourcePK FROM MMLotOperations a WITH(NOLOCK )类似[先根据外部序列号求解序列号,再照搬第一个判断变量的方式] SELECT LotPK,LotName INTO #WorkLotPKX FROM MMLots WITH(NOLOCK ,b.LotName AS SourceLotName,NULL FROM #WorkSourcePK2X a JOIN (SELECT LotPK,LotName FROM MMLots WITH(NOLOCK 本文的优化思想很简单,关键点是避免全表扫描 & 注重SQL语句写法 & 索引,另外,如果你查询的表有可能会在查询时段更新,而实际业务需求允许脏读,可加with(nolock)预防查询被更新事物阻塞。

    58310编辑于 2022-10-27
  • 来自专栏好好学java的技术栈

    实战上亿数据,如何实现秒查!

    FROM fn_String_To_Table(@LotName,',',1) SELECT LotPK,LotName INTO #WorkLotPK FROM MMLots WITH(NOLOCK SourceLotPK只能在这里求 SELECT a.LotPK,a.SourceLotPK into #WorkSourcePK FROM MMLotOperations a WITH(NOLOCK )类似[先根据外部序列号求解序列号,再照搬第一个判断变量的方式] SELECT LotPK,LotName INTO #WorkLotPKX FROM MMLots WITH(NOLOCK ,b.LotName AS SourceLotName,NULL FROM #WorkSourcePK2X a JOIN (SELECT LotPK,LotName FROM MMLots WITH(NOLOCK 本文的优化思想很简单,关键点是避免全表扫描 & 注重SQL语句写法 & 索引,另外,如果你查询的表有可能会在查询时段更新,而实际业务需求允许脏读,可加with(nolock)预防查询被更新事物阻塞。

    1K20发布于 2020-12-08
  • 来自专栏互联网开发者交流社区

    SQL一次查出相关类容避免长时间占用表(上)

    Direction = 'O' SELECT TOP 1 @InboundBusinessID_ItemCatalog = ID FROM dbo.EDI_CFG_Business WITH(NOLOCK Direction = 'I' SELECT TOP 1 @InboundBusinessID_Inventory = ID FROM dbo.EDI_CFG_Business WITH(NOLOCK Direction = 'I' SELECT TOP 1 @InboundBusinessID_ShipNotice = ID FROM dbo.EDI_CFG_Business WITH(NOLOCK Direction = 'I' SELECT TOP 1 @OutboundBusinessID_FunctionAck = ID FROM dbo.EDI_CFG_Business WITH(NOLOCK Name_Direction from ( select ID,Name+Direction as Name_Direction FROM dbo.EDI_CFG_Business WITH(NOLOCK

    42420发布于 2018-07-03
  • 来自专栏sktj

    python 多线程 锁lock/rlock(并行编程 4)

    threading.Lock() lock.acquire() lock.release() import threading withlock=0 nolock=0 count=10000 withlock for i in range(count): lock.acquire() withlock-=1 lock.release() def innolock(): global nolock for i in range(count): nolock+=1 def denolock(): global nolock for i in range(count): nolock-= start() t4.start() t1.join() t2.join() t3.join() t4.join() print("%s" % withlock) print("%s" % nolock

    66840发布于 2019-07-30
  • 来自专栏Windows技术交流

    自建Windows NFS Server

    rw,sync,no_root_squash) 上图所示的配置,假如server端内网IP是10.255.5.26,挂载到Z:,命令有2种,但前者在写权限上不完全ok,后者则没问题 mount -o nolock -o mtype=hard -o timeout=60 \\10.255.5.26\c\server Z: (如果指定了挂载名,就不要用这种了,写权限上不完全ok) mount -o nolock - mtype=hard 172.21.96.4:/c/test x: mount -o nolock mtype=hard 82.157.20.227:/c/test y: 前面已经说了这种方式不完全ok linux客户端(假如有2个nfs server,外网IP分别是 82.157.20.227、43.152.194.72) mount -t nfs -o vers=3,nolock,proto=tcp ,noresvport 82.157.20.227:/c/test /mnt mount -t nfs -o vers=3,nolock,proto=tcp,noresvport 43.152.194.72

    7.3K91编辑于 2023-08-16
  • 来自专栏crl .net

    union 分页/group/join 复杂查询(.net core/framework)

    [ProductName1] as a2 from [ProductData] t1 with (nolock) where (t1. [Remark] as a2 from [OrderProduct] t2 with (nolock) where (t2. [Remark] as a2 from [OrderProduct] t2 with (nolock) where (t2. [Remark] as a2 from [OrderProduct] t2 with (nolock) where (t2. [Remark] as a2 from [OrderProduct] t2 with (nolock) where (t2.

    90710发布于 2021-07-08
  • 来自专栏互联网开发者交流社区

    SQL-ROW_NUMBER() OVER函数的基本用法(源码案例)

    BBCAccount.dbo.Account account ON account.SysNo = change.AccountSysNo LEFT JOIN BBCAccount.dbo.Vendor V WITH ( NOLOCK ) ON V.SysNo = Account.VendorSysNo LEFT JOIN BBCAccount.dbo.Distributor D WITH ( NOLOCK ) ON D.SysNo BBCAccount.dbo.Account account ON account.SysNo = change.AccountSysNo LEFT JOIN BBCAccount.dbo.Vendor V WITH ( NOLOCK ) ON V.SysNo = Account.VendorSysNo LEFT JOIN BBCAccount.dbo.Distributor D WITH ( NOLOCK ) ON D.SysNo

    1K30发布于 2018-07-03
  • 来自专栏互联网开发者交流社区

    SQL-with as基本用法(源码DEMO)

    .* FROM BBCAccount.dbo.Account (NOLOCK) At LEFT JOIN ( SELECT * FROM BBCAccount.dbo.BusinessType (NOLOCK) BT WHERE BT.ParentCode ABC.InDate FROM BBCFinance.dbo.AccountBalanceChange (NOLOCK ) ABC LEFT JOIN BBCFinance.dbo.AccountAdjustReceipt (NOLOCK)AAR

    53440发布于 2018-07-04
  • 来自专栏互联网开发者交流社区

    SQL一次查出相关类容避免长时间占用表(下)

    ,@FileTypeID_X12846 int SELECT TOP 1 @FileTypeID_X12850 = ID FROM dbo.EDI_CFG_FileType WITH(NOLOCK WHERE Name='X12850' SELECT TOP 1 @FileTypeID_X12832 = ID FROM dbo.EDI_CFG_FileType WITH(NOLOCK WHERE Name='X12832' SELECT TOP 1 @FileTypeID_X12846 = ID FROM dbo.EDI_CFG_FileType WITH(NOLOCK FileTypeID_X12846=X12846 --select X12850,X12832 from ( select ID,Name from dbo.EDI_CFG_FileType WITH(NOLOCK

    46640发布于 2018-07-03
  • 来自专栏java一日一条

    优化SQL查询:如何写出高性能SQL语句

    8、 一些SQL查询语句应加上nolock 在SQL语句中加nolock是提高SQL Server并发性能的重要手段,在oracle中并不需要这样做,因为oracle的结构更为合理,有undo表空间保存 SQL Server 的读、写是会相互阻塞的,为了提高并发性能,对于一些查询,可以加上nolock,这样读的时候可以允许写,但缺点是可能读到未提交的脏数据。使用 nolock有3条原则。 (1) 查询的结果用于“插、删、改”的不能加nolock ! (2) 查询的表属于频繁发生页分裂的,慎用nolock ! ,而此时nolock的查询正在发生,比如在第100页已经读过的记录,可能会因为页分裂而分到第101页,这有可能使得nolock查询在读101页时重复读到该条数据,产生“重复读”。 上面提到的哥们,在加了nolock后一些操作出现报错,估计有可能因为nolock查询产生了重复读,2条相同的记录去插入别的表,当然会发生主键冲突。

    1.9K30发布于 2018-09-14
  • 来自专栏顶级程序员

    优化SQL查询:如何写出高性能SQL语句

    8、 一些SQL查询语句应加上nolock 在SQL语句中加nolock是提高SQL Server并发性能的重要手段,在oracle中并不需要这样做,因为oracle的结构更为合理,有undo表空间保存 SQL Server 的读、写是会相互阻塞的,为了提高并发性能,对于一些查询,可以加上nolock,这样读的时候可以允许写,但缺点是可能读到未提交的脏数据。使用 nolock有3条原则。 (1) 查询的结果用于“插、删、改”的不能加nolock ! (2) 查询的表属于频繁发生页分裂的,慎用nolock ! ,而此时nolock的查询正在发生,比如在第100页已经读过的记录,可能会因为页分裂而分到第101页,这有可能使得nolock查询在读101页时重复读到该条数据,产生“重复读”。 上面提到的哥们,在加了nolock后一些操作出现报错,估计有可能因为nolock查询产生了重复读,2条相同的记录去插入别的表,当然会发生主键冲突。

    3.6K80发布于 2018-04-26
  • 来自专栏网站教程

    SqlServer 数据库表的数据迁移

    table #TMP(列1 类型1,列2 类型2,,,) insert into #TMP(列1 类型1,列2 类型2,,,) select top 2000 列1,列2,,, from A with(nolock ) insert into B(列1,列2,,,) select 列1,列2,,, from #TMP with(nolock) insert into C(列1,列2,,,) select 列1,列2 ,,, from #TMP with(nolock) delete from A WHERE EXISTS (SELECT '1' FROM #TMP with(nolock) WHERE A.列1=#

    1.2K20发布于 2021-07-20
领券