前言

時間流逝比較快,博主也在快馬加鞭學(xué)習(xí)SQL Server,下班回來再晚也不忘記更新下博客,時間擠擠總會有的,現(xiàn)在的努力求的是未來所謂的安穩(wěn),每學(xué)一門為的是深度而不是廣度,求的是知識自成體系而不是零散,廢話不多說本節(jié)我們來講講SQL Server基礎(chǔ)系列最后幾節(jié)內(nèi)容,這話博主說了n次,呵呵。

NOLOCK和READPAST

NOLOCK

隨便翻翻博客園對于各種鎖的介紹真的是一個字【多】,僅僅介紹其概念,再要么就是轉(zhuǎn)載其概念,不知道那些轉(zhuǎn)載概念的園友是否已經(jīng)弄懂了,稍微發(fā)下感慨。NOLOCK在概念上類似于READ UNCOMMITTED隔離級別,并且只針對于SELECT查詢語句,它不會獲取表的共享鎖,換句話說不會阻止排它鎖來更新數(shù)據(jù)行。當(dāng)我們對表進行NOLOCK有什么好處呢?它能夠提高并發(fā)性能,因為此時SQL Server數(shù)據(jù)庫引擎不必去維護共享鎖,由于不會對正在讀取的表獲取貢獻鎖,所以可能導(dǎo)致未提交的事務(wù)也會被讀取,所以此時缺點顯而易見將導(dǎo)致臟讀,至于臟讀是何含義則無需我再多講。我們重點的明白什么情況下應(yīng)該用NOLOCK。我們看下實際例子來理解NOLOCK,建立測試表并插入300條測試數(shù)據(jù):

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),手機維修培訓(xùn),手機軟件培訓(xùn)

IF OBJECT_ID('Example')>0      DROP TABLE Example;

GO

CREATE TABLE [dbo].[Example]

(      
      [SaleID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,      
      [Product] [char](150) NULL,      
   &nbs
        
		

網(wǎng)友評論