必胜高考网_全国高考备考和志愿填报信息平台

必勝高考網(wǎng) > 計算機類 > 計算機等級 > 資訊 >

三級數(shù)據(jù)庫:鎖機制與鎖模式如何正確掌握

時間: 家輝2 資訊

  對于一般的用戶而言,通過系統(tǒng)的自動鎖定管理機制基本可以滿足使用要求,但如果對數(shù)據(jù)安全、數(shù)據(jù)庫完整性和一致性有特殊要求,就需要了解SQL Server鎖機制,掌握數(shù)據(jù)庫鎖定方法。

  鎖是數(shù)據(jù)庫中的一個非常重要的概念,它主要用于多用戶環(huán)境下保證數(shù)據(jù)庫完整性和一致性。 我們知道,多個用戶能夠同時操縱同一個數(shù)據(jù)庫中的數(shù)據(jù),會發(fā)生數(shù)據(jù)不一致現(xiàn)象。即如果沒有鎖定且多個用戶同時訪問一個數(shù)據(jù)庫,則當(dāng)他們的事務(wù)同時使用相同的數(shù)據(jù)時可能會發(fā)生問題。這些問題包括:丟失更新、臟讀、不可重復(fù)讀和幻覺讀:

  1.當(dāng)兩個或多個事務(wù)選擇同一行,然后基于最初選定的值更新該行時,會發(fā)生丟失更新問題。每個事務(wù)都不知道其它事務(wù)的存在。最后的更新將重寫由其它事務(wù)所做的更新,這將導(dǎo)致數(shù)據(jù)丟失。例如,兩個編輯人員制作了同一文檔的電子復(fù)本。每個編輯人員獨立地更改其復(fù)本,然后保存更改后的復(fù)本,這樣就覆蓋了原始文檔。最后保存其更改復(fù)本的編輯人員覆蓋了第一個編輯人員所做的更改。如果在第一個編輯人員完成之后第二個編輯人員才能進行更改,則可以避免該問題。

  2. 臟讀就是指當(dāng)一個事務(wù)正在訪問數(shù)據(jù),并且對數(shù)據(jù)進行了修改,而這種修改還沒有提交到數(shù)據(jù)庫中,這時,另外一個事務(wù)也訪問這個數(shù)據(jù),然后使用了這個數(shù)據(jù)。因為這個數(shù)據(jù)是還沒有提交的數(shù)據(jù),那么另外一個事務(wù)讀到的這個數(shù)據(jù)是臟數(shù)據(jù),依據(jù)臟數(shù)據(jù)所做的操作可能是不正確的。

  例如,一個編輯人員正在更改電子文檔。在更改過程中,另一個編輯人員復(fù)制了該文檔(該復(fù)本包含到目前為止所做的全部更改)并將其分發(fā)給預(yù)期的用戶。此后,第一個編輯人員認為目前所做的更改是錯誤的,于是刪除了所做的編輯并保存了文檔。分發(fā)給用戶的文檔包含不再存在的編輯內(nèi)容,并且這些編輯內(nèi)容應(yīng)認為從未存在過。如果在第一個編輯人員確定最終更改前任何人都不能讀取更改的文檔,則可以避免該問題。

  3.不可重復(fù)讀是指在一個事務(wù)內(nèi),多次讀同一數(shù)據(jù)。在這個事務(wù)還沒有結(jié)束時,另外一個事務(wù)也訪問該同一數(shù)據(jù)。那么,在第一個事務(wù)中的兩次讀數(shù)據(jù)之間,由于第二個事務(wù)的修改,那么第一個事務(wù)兩次讀到的的數(shù)據(jù)可能是不一樣的。

  這樣就發(fā)生了在一個事務(wù)內(nèi)兩次讀到的數(shù)據(jù)是不一樣的,因此稱為是不可重復(fù)讀。例如,一個編輯人員兩次讀取同一文檔,但在兩次讀取之間,作者重寫了該文檔。當(dāng)編輯人員第二次讀取文檔時,文檔已更改。原始讀取不可重復(fù)。如果只有在作者全部完成編寫后編輯人員才可以讀取文檔,則可以避免該問題。

  4.幻覺讀是指當(dāng)事務(wù)不是獨立執(zhí)行時發(fā)生的一種現(xiàn)象,例如第一個事務(wù)對一個表中的數(shù)據(jù)進行了修改,這種修改涉及到表中的全部數(shù)據(jù)行。同時,第二個事務(wù)也修改這個表中的數(shù)據(jù),這種修改是向表中插入一行新數(shù)據(jù)。

  那么,以后就會發(fā)生操作第一個事務(wù)的用戶發(fā)現(xiàn)表中還有沒有修改的數(shù)據(jù)行,就好象發(fā)生了幻覺一樣。例如,一個編輯人員更改作者提交的文檔,但當(dāng)生產(chǎn)部門將其更改內(nèi)容合并到該文檔的主復(fù)本時,發(fā)現(xiàn)作者已將未編輯的新材料添加到該文檔中。如果在編輯人員和生產(chǎn)部門完成對原始文檔的處理之前,任何人都不能將新材料添加到文檔中,則可以避免該問題。

  所以,處理多用戶并發(fā)訪問的方法是加鎖。鎖是防止其他事務(wù)訪問指定的資源控制、實現(xiàn)并發(fā)控制的一種主要手段。當(dāng)一個用戶鎖住數(shù)據(jù)庫中的某個對象時,其他用戶就不能再訪問該對象。加鎖對并發(fā)訪問的影響體現(xiàn)在鎖的粒度上。

  為了控制鎖定的資源,應(yīng)該首先了解系統(tǒng)的空間管理。在SQL Server 2000系統(tǒng)中,最小的空間管理單位是頁,一個頁有8K。所有的數(shù)據(jù)、日志、索引都存放在頁上。另外,使用頁有一個限制,這就是表中的一行數(shù)據(jù)必須在同一個頁上,不能跨頁。

  頁上面的空間管理單位是盤區(qū),一個盤區(qū)是8個連續(xù)的頁。表和索引的最小占用單位是盤區(qū)。數(shù)據(jù)庫是由一個或者多個表或者索引組成,即是由多個盤區(qū)組成。放在一個表上的鎖限制對整個表的并發(fā)訪問;放在盤區(qū)上的鎖限制了對整個盤區(qū)的訪問;放在數(shù)據(jù)頁上的鎖限制了對整個數(shù)據(jù)頁的訪問;放在行上的鎖只限制對該行的并發(fā)訪問。來

  SQL Server 2000 具有多粒度鎖定,允許一個事務(wù)鎖定不同類型的的資源。為了使鎖定的成本減至最少,SQL Server 自動將資源鎖定在適合任務(wù)的級別。鎖定在較小的粒度(例如行)可以增加并發(fā)但需要較大的開銷,因為如果鎖定了許多行,則需要控制更多的鎖。

  鎖定在較大的SQL Server鎖機制粒度(例如表)就并發(fā)而言是相當(dāng)昂貴的,因為鎖定整個表限制了其它事務(wù)對表中任意部分進行訪問,但要求的開銷較低,因為需要維護的鎖較少。SQL Server 可以鎖定行、頁、擴展盤區(qū)、表、庫等資源。

  行是可以鎖定的最小空間, 行級鎖占用的數(shù)據(jù)資源最少,所以在事務(wù)的處理過程中,允許其他事務(wù)繼續(xù)操縱同一個表或者同一個頁的其他數(shù)據(jù),大大降低了其他事務(wù)等待處理的時間,提高了系統(tǒng)的并發(fā)性。

  頁級鎖是指在事務(wù)的操縱過程中,無論事務(wù)處理數(shù)據(jù)的多少,每一次都鎖定一頁,在這個頁上的數(shù)據(jù)不能被其他事務(wù)操縱。在SQL Server 7.0以前,使用的是頁級鎖。頁級鎖鎖定的資源比行級鎖鎖定的數(shù)據(jù)資源多。在頁級鎖中,即使是一個事務(wù)只操縱頁上的一行數(shù)據(jù),那么該頁上的其他數(shù)據(jù)行也不能被其他事務(wù)使用。

  因此,當(dāng)使用頁級鎖時,會出現(xiàn)數(shù)據(jù)的浪費現(xiàn)象,也就是說,在同一個頁上會出現(xiàn)數(shù)據(jù)被占用卻沒有使用的現(xiàn)象。在這種現(xiàn)象中,數(shù)據(jù)的浪費最多不超過一個頁上的數(shù)據(jù)行。

  表級鎖也是一個非常重要的鎖。表級鎖是指事務(wù)在操縱某一個表的數(shù)據(jù)時,鎖定了這個數(shù)據(jù)所在的整個表,其他事務(wù)不能訪問該表中的其他數(shù)據(jù)。當(dāng)事務(wù)處理的數(shù)據(jù)量比較大時,一般使用表級鎖。表級鎖的特點是使用比較少的系統(tǒng)資源,但是卻占用比較多的數(shù)據(jù)資源。

  與行級鎖和頁級鎖相比,表級鎖占用的系統(tǒng)資源例如內(nèi)存比較少,但是占用的數(shù)據(jù)資源卻是最大。在表級鎖時,有可能出現(xiàn)數(shù)據(jù)的大量浪費現(xiàn)象,因為表級鎖鎖定整個表,那么其他的事務(wù)都不能操縱表中的其他數(shù)據(jù)。

  盤區(qū)鎖是一種特殊類型的鎖,只能用在一些特殊的情況下。簇級鎖就是指事務(wù)占用一個盤區(qū),這個盤區(qū)不能同時被其他事務(wù)占用。例如在創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表時,系統(tǒng)分配物理空間時使用這種類型的鎖。

  系統(tǒng)是按照盤區(qū)分配空間的。當(dāng)系統(tǒng)分配空間時,使用盤區(qū)鎖,防止其他事務(wù)同時使用同一個盤區(qū)。當(dāng)系統(tǒng)完成分配空間之后,就不再使用這種類型的盤區(qū)鎖。特別是,當(dāng)涉及到對數(shù)據(jù)操作的事務(wù)時,不使用盤區(qū)鎖。

  數(shù)據(jù)庫級鎖是指鎖定整個數(shù)據(jù)庫,防止任何用戶或者事務(wù)對鎖定的數(shù)據(jù)庫進行訪問。數(shù)據(jù)庫級鎖是一種非常特殊的鎖,它只是用于數(shù)據(jù)庫的恢復(fù)操作過程中。這種等級的鎖是一種最高等級的鎖,因為它控制整個數(shù)據(jù)庫的操作。只要對數(shù)據(jù)庫進行恢復(fù)操作,那么就需要設(shè)置數(shù)據(jù)庫為單用戶模式,這樣系統(tǒng)就能防止其他用戶對該數(shù)據(jù)庫進行各種操作。

  行級鎖是一種最優(yōu)鎖,因為行級鎖不可能出現(xiàn)數(shù)據(jù)既被占用又沒有使用的浪費現(xiàn)象。但是,如果用戶事務(wù)中頻繁對某個表中的多條記錄操作,將導(dǎo)致對該表的許多記錄行都加上了行級鎖,數(shù)據(jù)庫系統(tǒng)中鎖的數(shù)目會急劇增加,這樣就加重了系統(tǒng)負荷,影響系統(tǒng)性能。

  因此,在SQL Server中,還支持鎖升級(lock escalation)。所謂鎖升級是指調(diào)整鎖的粒度,將多個低粒度的鎖替換成少數(shù)的更高粒度的鎖,以此來降低系統(tǒng)負荷。在SQL Server中當(dāng)一個事務(wù)中的鎖較多,達到鎖升級門限時,系統(tǒng)自動將行級鎖和頁面鎖升級為表級鎖。特別值得注意的是,在SQL Server中,鎖的升級門限以及鎖升級是由系統(tǒng)自動來確定的,不需要用戶設(shè)置。以上的相關(guān)內(nèi)容就是對快速掌握SQL Server鎖機制和鎖模式的介紹,望你能有所收獲。

56053 主站蜘蛛池模板: 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 保温杯,儿童婴童奶瓶,运动水壶「广告礼品杯定制厂家」超朗保温杯壶 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 回转窑-水泥|石灰|冶金-巩义市瑞光金属制品有限责任公司 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 护栏打桩机-打桩机厂家-恒新重工 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 茅茅虫AI论文写作助手-免费AIGC论文查重_写毕业论文降重 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 杭州|上海贴标机-百科| ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 深圳市源和塑胶电子有限公司-首页 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 低温等离子清洗机(双气路进口)-嘉润万丰| 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 |