SQL Server的并發(fā)控制介紹
SQL Server的并發(fā)控制時怎樣的呢?這是很多人都提到過的問題,下面就為您詳細介紹SQL Server的并發(fā)控制,供您參考學習。
SQL Server 2005支持使用行版本控制的兩個事務隔離級別。一個是已提交讀隔離的新實現(xiàn),另一個是新事務隔離級別(快照)。
當許多人試圖同時修改數(shù)據(jù)庫中的數(shù)據(jù)時,必須實現(xiàn)一個控制系統(tǒng),使一個人所做的修改不會對他人所做的修改產生負面影響。這稱為并發(fā)控制。
SQL Server的并發(fā)控制理論根據(jù)建立并發(fā)控制的方法而分為兩類:
悲觀并發(fā)控制
一個鎖定系統(tǒng),可以阻止用戶以影響其他用戶的方式修改數(shù)據(jù)。如果用戶執(zhí)行的操作導致應用了某個鎖,只有這個鎖的所有者釋放該鎖,其他用戶才能執(zhí)行與該鎖沖突 的操作。這種方法之所以稱為悲觀并發(fā)控制,是因為它主要用于數(shù)據(jù)爭用激烈的環(huán)境中,以及發(fā)生并發(fā)沖突時用鎖保護數(shù)據(jù)的成本低于回滾事務的成本的環(huán)境中。
樂觀并發(fā)控制
在樂觀并發(fā)控制中,用戶讀取數(shù)據(jù)時不鎖定數(shù)據(jù)。當一個用戶更新數(shù)據(jù)時,系統(tǒng)將進行檢查,查看該用戶讀取數(shù)據(jù)后其他用戶是否又更改了該數(shù)據(jù)。如果其他用戶更新了數(shù)據(jù),將產生一個錯誤。一般情況下,收到錯誤信息的用戶將回滾事務并重新開始。
這種方法之所以稱為樂觀并發(fā)控制,是因為它主要用于數(shù)據(jù)爭用較少的環(huán)境中,以及回滾事務的成本偶爾高于讀取數(shù)據(jù)時鎖定數(shù)據(jù)的成本的環(huán)境中。
Microsoft SQL Server 2005 支持某個范圍的并發(fā)控制。用戶通過為游標上的連接或并發(fā)選項選擇事務隔離級別來指定并發(fā)控制的類型。這些特性可以使用 Transact-SQL 語句或通過數(shù)據(jù)庫應用程序編程接口(API,如 ADO、ADO.NET、OLE DB 和 ODBC)的屬性和特性來定義。
【編輯推薦】