SQL允許臟讀WITH(NOLOCK)


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

--事務未提交回滾
BEGIN TRAN
UPDATE dbo.student SET ca='6666' WHERE no=0
    --COMMIT
    --ROLLBACK

--同一個查詢框,不會死鎖
SELECT * FROM dbo.student AS S
--新開窗口查詢會死鎖
SELECT * FROM student 

---查詢哪個表鎖了
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
--鎖詳細信息
sp_lock 72

--新的窗口,使用WITH(NOLOCK)就不會死鎖,但會把可能回滾的數據查詢出來
SELECT * FROM student WITH(NOLOCK)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM