自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Microsoft SQL Server鎖模式的正確應(yīng)用

數(shù)據(jù)庫 SQL Server
以下的文章是介紹Microsoft SQL Server鎖模式,如果你對(duì)Microsoft SQL Server鎖模式心存好奇的話,你就可以點(diǎn)擊下面的文章進(jìn)行觀看了。

以下的文章講述的是Microsoft SQL Server鎖模式,在SQL Server數(shù)據(jù)庫中加鎖的實(shí)際操作過程中除了可以對(duì)一些資源進(jìn)行加鎖,同時(shí)還可以使用不同程度的加鎖方式,即鎖有多種模式,SQL Server中鎖模式包括:

1.共享鎖 SQL Server中,共享鎖用于所有的只讀數(shù)據(jù)操作。共享鎖是非獨(dú)占的,允許多個(gè)并發(fā)事務(wù)讀取其鎖定的資源。默認(rèn)情況下,數(shù)據(jù)被讀取后,SQL Server立即釋放共享鎖。例如,執(zhí)行查詢“SELECT * FROM AUTHORS”時(shí),首先鎖定***頁,讀取之后,釋放對(duì)***頁的鎖定,然后鎖定第二頁。

這樣,就允許在讀操作過程中,修改未被鎖定的***頁。但是,事務(wù)隔離級(jí)別連接選項(xiàng)設(shè)置和SELECT語句中的鎖定設(shè)置都可以改變SQL Server的這種默認(rèn)設(shè)置。例如,“ SELECT * FROM AUTHORS HOLDLOCK”就要求在整個(gè)查詢過程中,保持對(duì)表的鎖定,直到查詢完成才釋放鎖定。

2.更新鎖 更新鎖在修改操作的初始化階段用來鎖定可能要被修改的資源,這樣可以避免使用共享鎖造成的死鎖現(xiàn)象。因?yàn)槭褂霉蚕礞i時(shí),修改數(shù)據(jù)的操作分為兩步,首先獲得一個(gè)共享鎖,讀取數(shù)據(jù),然后將共享鎖升級(jí)為排它鎖,然后再執(zhí)行修改操作。

這樣如果同時(shí)有兩個(gè)或多個(gè)事務(wù)同時(shí)對(duì)一個(gè)事務(wù)申請了共享鎖,在修改數(shù)據(jù)的時(shí)候,這些事務(wù)都要將共享鎖升級(jí)為排它鎖。這時(shí),這些事務(wù)都不會(huì)釋放共享鎖而是一直等待對(duì)方釋放,這樣就造成了死鎖。如果一個(gè)數(shù)據(jù)在修改前直接申請更新鎖,在數(shù)據(jù)修改的時(shí)候再升級(jí)為排它鎖,就可以避免死鎖。

3.排它鎖 排它鎖是為修改數(shù)據(jù)而保留的。它所鎖定的資源,其他事務(wù)不能讀取也不能修改。

4.結(jié)構(gòu)鎖 執(zhí)行表的數(shù)據(jù)定義語言 (DDL) 操作(例如添加列或除去表)時(shí)使用架構(gòu)修改 (Sch-M) 鎖。當(dāng)編譯查詢時(shí),使用架構(gòu)穩(wěn)定性 (Sch-S) 鎖。架構(gòu)穩(wěn)定性 (Sch-S) 鎖不阻塞任何事務(wù)鎖,包括排它鎖。因此在編譯查詢時(shí),其它事務(wù)(包括在表上有排它鎖的事務(wù))都能繼續(xù)運(yùn)行。但不能在表上執(zhí)行 DDL 操作。

5.意向鎖 意向鎖說明SQL Server有在資源的低層獲得共享鎖或排它鎖的意向。例如,表級(jí)的共享意向鎖說明事務(wù)意圖將排它鎖釋放到表中的頁或者行。意向鎖又可以分為共享意向鎖、獨(dú)占意向鎖和共享式獨(dú)占意向鎖。

共享意向鎖說明事務(wù)意圖在共享意向鎖所鎖定的低層資源上放置共享鎖來讀取數(shù)據(jù)。獨(dú)占意向鎖說明事務(wù)意圖在共享意向鎖所鎖定的低層資源上放置排它鎖來修改數(shù)據(jù)。共享式排它鎖說明事務(wù)允許其他事務(wù)使用共享鎖來讀取頂層資源,并意圖在該資源低層上放置排它鎖。

 

6.大容量更新鎖 當(dāng)將數(shù)據(jù)大容量復(fù)制到表,且指定了 TABLOCK 提示或者使用 sp_tableoption 設(shè)置了 table lock on bulk 表選項(xiàng)時(shí),將使用大容量更新 鎖。大容量更新鎖允許進(jìn)程將數(shù)據(jù)并發(fā)地大容量復(fù)制到同一表,同時(shí)防止其它不進(jìn)行大容量復(fù)制數(shù)據(jù)的進(jìn)程訪問該表。

上述的相關(guān)內(nèi)容就是對(duì)Microsoft SQL Server鎖模式的描述,希望會(huì)給你帶來一些幫助在此方面。

【編輯推薦】

  1. SQL Server 2000表變量引入時(shí)的問題破解
  2. SQL Server刪除重復(fù)數(shù)據(jù)的2個(gè)實(shí)用方案
  3. 快速對(duì)SQL Server鎖機(jī)制進(jìn)行掌握的竅門
  4. SQL Server存儲(chǔ)圖像數(shù)據(jù)大閱兵
  5. SQL Server重復(fù)數(shù)據(jù)刪除的2個(gè)操作方案
責(zé)任編輯:佚名 來源: 電子工業(yè)出版社
相關(guān)推薦

2010-07-21 10:50:48

SQL Server存

2010-07-26 17:43:34

SQL Server

2010-07-20 13:26:43

2010-07-05 14:34:19

2010-06-30 08:41:21

SQL Server嵌

2010-07-26 15:17:46

SQL Server鎖

2010-05-28 15:16:40

MySQL 資源

2010-07-22 14:31:13

Microsoft S

2010-05-25 18:01:35

linux MySQL

2010-05-28 19:20:36

MySQL mysql

2009-12-07 14:38:14

PHP foreach

2010-02-22 10:42:12

WCF Stream

2010-02-22 14:09:08

WCF Dispose

2021-07-02 16:13:01

區(qū)塊鏈金融數(shù)據(jù)庫

2010-07-19 18:04:23

SQL Server鎖

2010-11-09 13:47:17

SQL Server資

2010-02-05 17:49:24

C++常量引用

2010-03-04 09:40:52

Python Clas

2010-02-05 14:12:46

C++聲明放置

2010-03-04 13:30:11

Python file
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)