婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL2008中SQL應(yīng)用之-鎖定(locking) 應(yīng)用分析

SQL2008中SQL應(yīng)用之-鎖定(locking) 應(yīng)用分析

熱門標(biāo)簽:海南自動(dòng)外呼系統(tǒng)價(jià)格 舞鋼市地圖標(biāo)注app 沈陽智能外呼系統(tǒng)代理 九鹿林外呼系統(tǒng)怎么收費(fèi) 電銷機(jī)器人虛擬號碼 創(chuàng)業(yè)電銷機(jī)器人 浙江地圖標(biāo)注 松原導(dǎo)航地圖標(biāo)注 滄州營銷外呼系統(tǒng)軟件

一、鎖的基本概念:

鎖定(Locking)是一個(gè)關(guān)系型數(shù)據(jù)庫系統(tǒng)的常規(guī)和必要的一部分,它防止對相同數(shù)據(jù)作 并發(fā)更新 或在更新過程中查看數(shù)據(jù) 從而保證被更新數(shù)據(jù)的完整性它也能防止用戶讀取正在被修改的數(shù)據(jù) Sql Server動(dòng)態(tài)地管理鎖定,然而,還是很有必要 了解Transact- SQL查詢如何影響SQL Server中的。在此,簡單介紹下鎖的基本常識。

鎖定有助于防止并發(fā)問題的發(fā)生。當(dāng)一個(gè)用戶試圖讀取另一個(gè)用戶正在修改的數(shù)據(jù),或者修改另一個(gè)用戶正在讀取的數(shù)據(jù)時(shí),或者嘗試修改另一個(gè)事務(wù)正在嘗試修改的數(shù)據(jù)時(shí),就會出現(xiàn)并發(fā)問題。

SQL Server資源會被鎖定,資源的鎖定方式稱作它的鎖定模式(lock mode),下表列出SQL Server處理的主要鎖定模式:

名稱

描述

共享 (S) 用于不更改或不更新數(shù)據(jù)的讀取操作,如 SELECT 語句。
更新 (U) 用于可更新的資源中。 防止當(dāng)多個(gè)會話在讀取、鎖定以及隨后可能進(jìn)行的資源更新時(shí)發(fā)生常見形式的死鎖。
排他 (X) 用于數(shù)據(jù)修改操作,例如 INSERT、UPDATE 或 DELETE。 確保不會同時(shí)對同一資源進(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) 在向表進(jìn)行大容量數(shù)據(jù)復(fù)制且指定了 TABLOCK 提示時(shí)使用。
鍵范圍 當(dāng)使用可序列化事務(wù)隔離級別時(shí)保護(hù)查詢讀取的行的范圍。 確保再次運(yùn)行查詢時(shí)其他事務(wù)無法插入符合可序列化事務(wù)的查詢的行。

可以鎖定SQL Server中的各種對象,既可以是一個(gè)行,也可以是一個(gè)表或數(shù)據(jù)庫。可以鎖定的資源在粒度(granularity)上差異很大。從細(xì)(行)到粗(數(shù)據(jù)庫)。細(xì)粒度鎖允許更大的數(shù)據(jù)庫并發(fā),因?yàn)橛脩裟軐δ承┪存i定的行執(zhí)行查詢。然而,每個(gè)由SQL Server產(chǎn)生的鎖都需要內(nèi)存,所以數(shù)以千計(jì)獨(dú)立的行級別的鎖也會影響SQL Server的性能。粗粒度的鎖降低了并發(fā)性,但消耗的資源也較少。下表介紹SQL Server可以鎖定的資源:

資源

說明

KEY 索引中用于保護(hù)可序列化事務(wù)中的鍵范圍的行鎖。
PAGE 數(shù)據(jù)庫中的 8 KB 頁,例如數(shù)據(jù)頁或索引頁。
EXTENT 一組連續(xù)的八頁,例如數(shù)據(jù)頁或索引頁。
HoBT 堆或 B 樹。 用于保護(hù)沒有聚集索引的表中的 B 樹(索引)或堆數(shù)據(jù)頁的鎖。
TABLE 包括所有數(shù)據(jù)和索引的整個(gè)表。
FILE 數(shù)據(jù)庫文件。
RID 用于鎖定堆中的單個(gè)行的行標(biāo)識符。
APPLICATION 應(yīng)用程序?qū)S玫馁Y源。
METADATA 元數(shù)據(jù)鎖。
ALLOCATION_UNIT 分配單元。
DATABASE 整個(gè)數(shù)據(jù)庫。

不是所有的鎖都能彼此兼容。例如,一個(gè)被排他鎖鎖定的資源不能被再加其他鎖。其他事務(wù)必須等待或超時(shí),直到排他鎖被釋放。被更新鎖鎖定的資源只能接受其他事務(wù)的共享鎖。被共享鎖鎖定的資源還能接受其他的共享鎖或更新鎖。

SQL Server自動(dòng)分配和升級鎖。升級意味著細(xì)粒度的鎖(行或頁鎖)被轉(zhuǎn)化為粗粒度的表鎖。當(dāng)單個(gè)T-SQL語句在單個(gè)表或索引上獲取5000多個(gè)鎖,或者SQL Server實(shí)例中的鎖數(shù)量超過可用內(nèi)存閾值時(shí),SQL Server會嘗試啟動(dòng)鎖升級。鎖占用系統(tǒng)內(nèi)存,因此把很多鎖轉(zhuǎn)化為一個(gè)較大的鎖能釋放內(nèi)存資源。然而,在釋放內(nèi)存資源的同時(shí)會降低并發(fā)性。

SQL Server 2008帶來了新的表選項(xiàng),可以禁用鎖升級或在分區(qū)(而不是表)范圍啟用鎖升級。


二、查看鎖的活動(dòng)

下面演示一個(gè)實(shí)例,它使用sys.dm_tran_locks動(dòng)態(tài)視圖監(jiān)視數(shù)據(jù)庫中鎖的活動(dòng)。

打開一個(gè)查詢窗口,執(zhí)行如下語句:

復(fù)制代碼 代碼如下:

USE AdventureWorks
BEGIN TRAN
SELECT ProductID, ModifiedDate
FROM Production.ProductDocument
WITH (TABLOCKX)

打開另一個(gè)查詢窗口,執(zhí)行:
復(fù)制代碼 代碼如下:

SELECT request_session_id sessionid,
resource_type type,
resource_database_id dbid,
OBJECT_NAME(resource_associated_entity_id, resource_database_id) objectname,
request_mode rmode,
request_status rstatus
FROM sys.dm_tran_locks
WHERE resource_type IN ('DATABASE', 'OBJECT')

執(zhí)行結(jié)果:
復(fù)制代碼 代碼如下:

/*
sessionid type dbid objectname rmode rstatus
51 DATABASE 4 NULL S GRANT
52 DATABASE 4 NULL S GRANT
53 DATABASE 8 NULL S GRANT
56 DATABASE 8 NULL S GRANT
53 OBJECT 8 ProductDocument X GRANT
*/

解析:本示例中,我們首先啟動(dòng)了一個(gè)新事務(wù),并使用TABLOCKX鎖提示(這個(gè)提示對表放置了排他鎖),對Production.ProductDocument表執(zhí)行了一個(gè)查詢。查詢sys.dm_tran_locks動(dòng)態(tài)管理視力可以監(jiān)視當(dāng)前SQL Server實(shí)例中打開了哪些鎖。它返回了AdventureWorks數(shù)據(jù)庫中活動(dòng)鎖的列表。可以在結(jié)果中的最后一行看到ProductDocument表上的排他鎖。

前三列定義了會話鎖、資源類型和數(shù)據(jù)庫ID。第四列使用了Object_Name函數(shù),注意它使用了兩個(gè)參數(shù)(對象ID和數(shù)據(jù)庫ID)來指定訪問哪個(gè)名稱(第二個(gè)參數(shù)是SQL Server 2005 SP2引入的,它用來指定為了轉(zhuǎn)換對象名稱而使用哪個(gè)數(shù)據(jù)庫)。同時(shí)也查詢鎖定請求模式和狀態(tài),最后,F(xiàn)rom子句引用DMV,用Where子句指定了兩個(gè)資源類型。Resource_Type指定了鎖定的資源類型,如Database\Object\File\Page\Key\RID\Extent\Metadata\Application\Allocation_Unit或HOBT類型。依賴資源類型的resource_associated_entity_id,確定ID是object ID, allocation unit ID, 或Hobt ID。

如果resource_associated_entity_id列包含Object ID(資源類型為Object),可以使用sys.objects目錄視圖來轉(zhuǎn)換名稱。

如果resource_associated_entity_id列包含allocation unit ID(資源類型為Allocation_Unit),可以引用sys.allocatiion_units和contain_id聯(lián)結(jié)到sys.partitions上,就可以確定object ID。

如果resource_associated_entity_id列包含Hobt ID(資源類型為Key\page\Row或HOBT),可以直接引用sys.partitions,然后查找相應(yīng)的Object ID。

對于Database、Extent、 Application或MetaData的資源類型,resource_associated_entity_id列將為0。

使用sys.dm_tran_locks能對無法預(yù)料的并發(fā)問題進(jìn)行故障調(diào)試。例如,一個(gè)查詢會話占用鎖的時(shí)間可能比預(yù)期時(shí)間長而被鎖,或者鎖的粒度或鎖模式不是我們所期望的(可能是希望使用表鎖而不是更小粒度的行鎖或頁鎖)。理解鎖處于的鎖定級別有助于我們更有效地對查詢的并發(fā)問題進(jìn)行故障調(diào)試。


三、控制表的鎖升級行為

每個(gè)在SQL Server中創(chuàng)建的鎖都會消耗內(nèi)存資源。當(dāng)鎖的數(shù)量增加時(shí),內(nèi)存就會減少。如果鎖的內(nèi)存使用百分比超過一個(gè)特定閾值,SQL Server會將細(xì)粒度鎖(頁或行)轉(zhuǎn)換為粗粒度鎖(表鎖)。這個(gè)過程稱為鎖升級。鎖升級可以減少SQL Server實(shí)例占有的鎖數(shù)量,減少鎖內(nèi)存的使用。

雖然細(xì)粒度會消耗更多的內(nèi)存,但由于多個(gè)查詢可以訪問未鎖定的行,因此也會改善并發(fā)性。引入表鎖可能會減少內(nèi)存的消耗,但也會帶來阻塞,這是因?yàn)橐粭l查詢鎖住了整個(gè)表。根據(jù)使用數(shù)據(jù)庫的應(yīng)用程序,這個(gè)行為可能是不希望發(fā)生的,而且你可能希望當(dāng)SQL Server實(shí)施鎖升級時(shí)盡量獲得更多的控制。

SQL Server 2008引入了使用ALter table命令在表級別控制鎖升級的功能。現(xiàn)在可以從如下3個(gè)設(shè)置中選擇:

Table 這是SQL Server 2005中使用的默認(rèn)行為。當(dāng)設(shè)置為該值時(shí),在表級別啟用了鎖升級,不論是否為分區(qū)表。

Auto 如果表已分區(qū),則在分區(qū)級別(堆或B樹)啟用鎖升級。如果表未分區(qū),鎖升級將發(fā)生在表級別上。

Disable 在表級別刪除鎖升級。注意,對于用了TABLOCK 提示或使用可序列化隔離級別下Heap的查詢時(shí),你仍然可能看到表鎖。

下面示例演示了修改表的新設(shè)置:

復(fù)制代碼 代碼如下:

ALTER TABLE Person.Address
SET (LOCK_ESCALATION = AUTO)
--注意這句在SQL Server 2005下會出錯(cuò)
SELECT lock_escalation,lock_escalation_desc
FROM sys.tables
WHERE name='Address'

/*
lock_escalation lock_escalation_desc
2 AUTO
*/

下來,我們禁用鎖升級:
復(fù)制代碼 代碼如下:

ALTER TABLE Person.Address
SET ( LOCK_ESCALATION = DISABLE)
SELECT lock_escalation,lock_escalation_desc
FROM sys.tables
WHERE name='Address'

/*
lock_escalation lock_escalation_desc
1 DISABLE
*/

說明:在更改了這個(gè)配置后,可以通過查詢sys.tables目錄視圖的lock_escalation_desc列來驗(yàn)證這個(gè)選項(xiàng)。

注意:如果表未分區(qū),通常情況為表級別升級。如果你指定了Disable選項(xiàng),將不會出現(xiàn)表級別的鎖升級。這會提高并發(fā)性,但如果你請求訪問大量的行或頁,會增加內(nèi)存的消耗。
邀月 來自 http://www.cnblogs.com/downmoon

標(biāo)簽:咸寧 臺灣 西藏 日喀則 海口 公主嶺 商洛 寶雞

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL2008中SQL應(yīng)用之-鎖定(locking) 應(yīng)用分析》,本文關(guān)鍵詞  SQL2008,中,SQL,應(yīng),用之,鎖定,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL2008中SQL應(yīng)用之-鎖定(locking) 應(yīng)用分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL2008中SQL應(yīng)用之-鎖定(locking) 應(yīng)用分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美午夜理伦三级在线观看| 日韩三级电影网址| 欧美精品v国产精品v日韩精品| 欧美一区二区三区在线看| 国产偷v国产偷v亚洲高清| 亚洲韩国一区二区三区| 成人精品视频一区二区三区 | 26uuu欧美日本| 亚洲免费高清视频在线| 国产曰批免费观看久久久| 欧美唯美清纯偷拍| 中文字幕制服丝袜成人av| 蜜臀av性久久久久蜜臀av麻豆 | 欧美一级艳片视频免费观看| 亚洲欧美影音先锋| 国产综合久久久久久久久久久久| 欧美日韩国产综合一区二区三区 | 欧美一级黄色片| 亚洲综合图片区| 成人av电影在线| 欧美激情在线一区二区三区| 狠狠色2019综合网| 555www色欧美视频| 首页国产欧美久久| 欧美精品在线观看播放| 亚洲国产视频在线| 在线观看日韩精品| 亚洲一二三四在线观看| 欧美午夜宅男影院| 一区二区三区四区激情| 色老汉av一区二区三区| 一区二区三区毛片| 在线亚洲精品福利网址导航| 中文字幕一区av| 日本精品视频一区二区| 一区二区三区免费| 欧美精品1区2区3区| 天天色图综合网| 日韩天堂在线观看| 91极品美女在线| 亚洲国产视频一区二区| 在线综合亚洲欧美在线视频| 免费精品99久久国产综合精品| 欧美一区午夜视频在线观看| 激情另类小说区图片区视频区| 久久久久一区二区三区四区| 粉嫩av一区二区三区在线播放| 中文字幕中文在线不卡住| 色嗨嗨av一区二区三区| 亚洲第一主播视频| 欧美巨大另类极品videosbest | 久久精品99久久久| 国产人妖乱国产精品人妖| av中文一区二区三区| 亚洲精品视频观看| 日韩一区二区三区电影在线观看 | 6080午夜不卡| 国产精品88av| 亚洲自拍都市欧美小说| 91精品国产麻豆| 国产黑丝在线一区二区三区| 樱桃国产成人精品视频| 日韩欧美久久一区| 99久久免费精品高清特色大片| 亚洲午夜一区二区三区| 久久久久亚洲蜜桃| 欧美日韩一区高清| 国产成人亚洲综合a∨猫咪| 亚洲精品国产成人久久av盗摄| 日韩一区二区电影在线| 成人高清免费观看| 蜜臀av亚洲一区中文字幕| 国产精品女主播av| 日韩视频中午一区| 色妹子一区二区| 国产一区二区久久| 亚洲电影在线播放| 国产女主播视频一区二区| 欧美日韩国产综合草草| 国产盗摄女厕一区二区三区| 婷婷中文字幕综合| 国产精品乱码一区二区三区软件| 91麻豆精品国产自产在线观看一区 | 91视频国产资源| 精品午夜一区二区三区在线观看| 一区二区三区在线免费视频| 久久免费的精品国产v∧| 欧美色视频一区| 91亚洲精品一区二区乱码| 国产毛片精品国产一区二区三区| 亚洲v中文字幕| 一区二区三区四区激情| 中文字幕av一区 二区| 精品乱人伦一区二区三区| 色综合色综合色综合 | 亚洲欧美国产高清| 欧美高清在线视频| 久久久久久一二三区| 日韩欧美国产综合| 欧美日韩国产bt| 91亚洲男人天堂| bt欧美亚洲午夜电影天堂| 国产高清不卡一区二区| 久久国产精品72免费观看| 日韩在线卡一卡二| 午夜影院久久久| 亚洲五码中文字幕| 亚洲精品视频自拍| 夜色激情一区二区| 一区二区三区在线观看网站| 亚洲激情成人在线| 一区二区三区美女视频| 一级中文字幕一区二区| 亚洲色图在线看| 一区二区三区在线观看国产| 亚洲一卡二卡三卡四卡无卡久久| 夜夜揉揉日日人人青青一国产精品| 亚洲色图19p| 一区二区三区不卡视频| 午夜精品视频一区| 奇米在线7777在线精品| 久久精品国产**网站演员| 国产一区二区三区久久久| 国产传媒一区在线| 99久久精品国产麻豆演员表| 91蜜桃网址入口| 欧美三电影在线| 精品国产百合女同互慰| 国产农村妇女毛片精品久久麻豆| 国产精品久久久久毛片软件| 亚洲免费观看高清完整版在线观看| 亚洲欧洲制服丝袜| 日韩成人精品视频| 韩国午夜理伦三级不卡影院| 成人精品国产免费网站| 欧美做爰猛烈大尺度电影无法无天| 欧美日韩一区二区在线视频| 日韩三级电影网址| 自拍av一区二区三区| 亚洲大片在线观看| 久久99精品国产91久久来源| 成人深夜在线观看| 欧美高清你懂得| 中文字幕在线观看一区| 日韩精品一级二级| 国产精品自拍三区| 欧美日韩免费一区二区三区视频| 精品国产区一区| 亚洲欧美成aⅴ人在线观看| 久久99九九99精品| 91成人网在线| 久久人人97超碰com| 亚洲综合色噜噜狠狠| 国产精品中文有码| 欧美人伦禁忌dvd放荡欲情| 中文字幕欧美国产| 毛片av一区二区| 一本色道久久综合精品竹菊| 日韩精品一区在线观看| 亚洲永久免费视频| 不卡视频免费播放| 欧美成人激情免费网| 一卡二卡欧美日韩| av色综合久久天堂av综合| 欧美一区二区三区在线| 伊人色综合久久天天人手人婷| 久久99九九99精品| 免费观看久久久4p| 色哟哟国产精品| 国产一区999| 欧美国产精品专区| 亚洲第一福利视频在线| 国产成人免费在线观看| 精品国产自在久精品国产| 一区二区三区在线视频免费 | 日韩欧美在线1卡| 亚洲男人天堂av| 99re成人精品视频| 国产欧美日韩不卡| 国产精品中文字幕欧美| 日韩精品中文字幕在线一区| 午夜伦欧美伦电影理论片| 91黄色免费观看| 一区二区三区欧美日| 99精品国产热久久91蜜凸| 欧美国产1区2区| 成人免费视频播放| 国产欧美精品一区二区三区四区 | 欧美人妖巨大在线| 亚洲综合色噜噜狠狠| 色久优优欧美色久优优| 一个色在线综合| 在线观看中文字幕不卡| 亚洲精品免费一二三区| 91麻豆国产福利在线观看| 最新国产精品久久精品| 91免费看视频| 午夜私人影院久久久久| 337p亚洲精品色噜噜噜| 看电视剧不卡顿的网站|