SQL允許髒讀WITH NOLOCK

2022-01-22 05:10:53 字數 1098 閱讀 4617

使用wiht(nolock)有利也有弊,所以在決定使用之前,你一定需要了解清楚with(nolock)的功能和缺陷,看其是否適合你的業務需求,不要覺得它能提公升效能,稀里糊塗的就使用它。

--

事務未提交回滾

begin

tran

update dbo.student set ca=

'6666

'where no=0--

commit

--rollback

--同乙個查詢框,不會死鎖

select

*from dbo.student as s

--

新開視窗查詢會死鎖

-查詢哪個表鎖了

select

request_session_id spid,

object_name

(resource_associated_entity_id

) tablename

from

sys.dm_tran_locks

where

resource_type ='

object

'order

by request_session_id asc

--鎖詳細資訊

sp_lock 57

--鎖詳細資訊

新的視窗,使用with(nolock)就不會死鎖,但會把可能回滾的資料查詢出來

Synchronize讀髒解決

對於業務需要同步的 同時,新增synchronize關鍵字 比如,在getvalue setvalue方法上 都加上synchronize關鍵字 保證,業務的一致性 package com.bjsxt.base.sync004 業務整體需要使用完整的synchronized,保持業務的原子性。pub...

髒讀,不可重複的讀,虛讀

引用 髒讀dirty reads 當事務讀取還未被提交的資料時,就會發生這種事件。舉例來說 transaction 1 修改了一行資料,然後 transaction 2 在 transaction 1 還未提交修改操作之前讀取了被修改的行。如果 transaction 1 回滾了修改操作,那麼 tr...

髒讀,不可重複的讀,虛讀

引用 髒讀dirty reads 當事務讀取還未被提交的資料時,就會發生這種事件。舉例來說 transaction 1 修改了一行資料,然後 transaction 2 在 transaction 1 還未提交修改操作之前讀取了被修改的行。如果 transaction 1 回滾了修改操作,那麼 tr...