偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server資源鎖模式大全

數(shù)據(jù)庫(kù) SQL Server
提升SQL Server數(shù)據(jù)庫(kù)的性能是大家熱議的話題,而SQL Server終的“鎖”是提高數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn)性能的關(guān)鍵所在。

SQL Server資源鎖模式都有哪些呢?這是很多人都提到過(guò)的問(wèn)題,下面就為您詳細(xì)介紹各種SQL Server資源鎖模式,希望對(duì)您能有所幫助。

SQL Server 使用以下SQL Server資源鎖模式。

鎖模式    描述
共享(S) 用于不更改或不更新數(shù)據(jù)的操作(只讀操作),如 SELECT 語(yǔ)句。
更新(U) 用于可更新的資源中。防止當(dāng)多個(gè)會(huì)話在讀取、鎖定以及隨后可能進(jìn)行的資源更新時(shí)發(fā)生常見(jiàn)形式的死鎖。
排它(X) 用于數(shù)據(jù)修改操作,例如 INSERT、UPDATE 或 DELETE。確保不會(huì)同時(shí)對(duì)同一資源進(jìn)行多重更新。
意向 用于建立鎖的層次結(jié)構(gòu)。意向鎖的類型為:意向共享 (IS)、意向排它 (IX) 以及與意向排它共享 (SIX)。
架構(gòu) 在執(zhí)行依賴于表架構(gòu)的操作時(shí)使用。架構(gòu)鎖的類型為:架構(gòu)修改 (Sch-M) 和架構(gòu)穩(wěn)定性 (Sch-S)。
大容量更新(BU) 向表中大容量復(fù)制數(shù)據(jù)并指定了 TABLOCK 提示時(shí)使用。

共享鎖
共享 (S) 鎖允許并發(fā)事務(wù)讀取 (SELECT) 一個(gè)資源。資源上存在共享 (S) 鎖時(shí),任何其它事務(wù)都不能修改數(shù)據(jù)。一旦已經(jīng)讀取數(shù)據(jù),便立即釋放資源上的共享 (S) 鎖,除非將事務(wù)隔離級(jí)別設(shè)置為可重復(fù)讀或更高級(jí)別,或者在事務(wù)生存周期內(nèi)用鎖定提示保留共享 (S) 鎖。

更新鎖
更新 (U) 鎖可以防止通常形式的死鎖。一般更新模式由一個(gè)事務(wù)組成,此事務(wù)讀取記錄,獲取資源(頁(yè)或行)的共享 (S) 鎖,然后修改行,此操作要求鎖轉(zhuǎn)換為排它 (X) 鎖。如果兩個(gè)事務(wù)獲得了資源上的共享模式鎖,然后試圖同時(shí)更新數(shù)據(jù),則一個(gè)事務(wù)嘗試將鎖轉(zhuǎn)換為排它 (X) 鎖。共享模式到排它鎖的轉(zhuǎn)換必須等待一段時(shí)間,因?yàn)橐粋€(gè)事務(wù)的排它鎖與其它事務(wù)的共享模式鎖不兼容;發(fā)生鎖等待。第二個(gè)事務(wù)試圖獲取排它 (X) 鎖以進(jìn)行更新。由于兩個(gè)事務(wù)都要轉(zhuǎn)換為排它 (X) 鎖,并且每個(gè)事務(wù)都等待另一個(gè)事務(wù)釋放共享模式鎖,因此發(fā)生死鎖。
若要避免這種潛在的死鎖問(wèn)題,請(qǐng)使用更新 (U) 鎖。一次只有一個(gè)事務(wù)可以獲得資源的更新 (U) 鎖。如果事務(wù)修改資源,則更新 (U) 鎖轉(zhuǎn)換為排它 (X) 鎖。否則,鎖轉(zhuǎn)換為共享鎖。

排它鎖
排它 (X) 鎖可以防止并發(fā)事務(wù)對(duì)資源進(jìn)行訪問(wèn)。其它事務(wù)不能讀取或修改排它 (X) 鎖鎖定的數(shù)據(jù)。

意向鎖
意向鎖表示 SQL Server 需要在層次結(jié)構(gòu)中的某些底層資源上獲取共享 (S) 鎖或排它 (X) 鎖。例如,放置在表級(jí)的共享意向鎖表示事務(wù)打算在表中的頁(yè)或行上放置共享 (S) 鎖。在表級(jí)設(shè)置意向鎖可防止另一個(gè)事務(wù)隨后在包含那一頁(yè)的表上獲取排它 (X) 鎖。意向鎖可以提高性能,因?yàn)?SQL Server 僅在表級(jí)檢查意向鎖來(lái)確定事務(wù)是否可以安全地獲取該表上的鎖。而無(wú)須檢查表中的每行或每頁(yè)上的鎖以確定事務(wù)是否可以鎖定整個(gè)表。
意向鎖包括意向共享 (IS)、意向排它 (IX) 以及與意向排它共享 (SIX)。
鎖模式 描述
意向共享 (IS) 通過(guò)在各資源上放置 S 鎖,表明事務(wù)的意向是讀取層次結(jié)構(gòu)中的部分(而不是全部)底層資源。
意向排它 (IX) 通過(guò)在各資源上放置 X 鎖,表明事務(wù)的意向是修改層次結(jié)構(gòu)中的部分(而不是全部)底層資源。IX 是 IS 的超集。
與意向排它共享 (SIX) 通過(guò)在各資源上放置 IX 鎖,表明事務(wù)的意向是讀取層次結(jié)構(gòu)中的全部底層資源并修改部分(而不是全部)底層資源。允許頂層資源上的并發(fā) IS 鎖。例如,表的 SIX 鎖在表上放置一個(gè) SIX 鎖(允許并發(fā) IS 鎖),在當(dāng)前所修改頁(yè)上放置 IX 鎖(在已修改行上放置 X 鎖)。雖然每個(gè)資源在一段時(shí)間內(nèi)只能有一個(gè) SIX 鎖,以防止其它事務(wù)對(duì)資源進(jìn)行更新,但是其它事務(wù)可以通過(guò)獲取表級(jí)的 IS 鎖來(lái)讀取層次結(jié)構(gòu)中的底層資源。

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

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

 

 

 

【編輯推薦】

sql server查詢平均值的實(shí)現(xiàn)

SQL Server查詢累計(jì)值的實(shí)現(xiàn)

SQL Server字符串函數(shù)大全

SQL Server綁定連接

SQL Server分頁(yè)查詢的兩種方法

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-19 18:04:23

SQL Server鎖

2010-07-26 15:17:46

SQL Server鎖

2010-07-26 16:11:45

Microsoft S

2010-11-09 13:58:03

SQL Server鎖

2010-11-12 11:00:11

SQL SERVER內(nèi)

2010-09-27 16:19:37

SQL Server時(shí)

2010-06-29 17:17:44

SQL Server鎖

2010-11-08 17:07:41

SQL Server字

2010-07-20 08:35:54

SQL Server鎖

2010-07-19 17:57:22

SQL Server鎖

2010-07-22 15:56:04

SQL Server臨

2010-06-28 08:37:58

SQL Server

2011-09-01 19:00:08

SQL ServerDBCC語(yǔ)句

2010-07-23 13:04:39

SQL Server

2010-09-08 14:49:12

SQL Server數(shù)據(jù)庫(kù)

2013-07-24 17:51:14

2010-07-06 10:19:15

SQL Server層

2010-11-09 11:40:14

SQL Server查

2010-07-20 08:48:14

SQL Server

2011-09-08 16:30:59

SQL Server查詢
點(diǎn)贊
收藏

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