




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
級(jí)四 選 Currentlycommitted(V9.7新引入鎖常見(jiàn)鎖現(xiàn)象(鎖升級(jí)、鎖等待、鎖超時(shí)、死鎖鎖DB2支持多個(gè)終端用必須控制對(duì)同一個(gè)數(shù)據(jù)集 以保證數(shù)據(jù)的完整性(Data數(shù)據(jù)的一致性(Data如果沒(méi)有某種形式的并發(fā)控制,可能會(huì)遇到以下問(wèn)題丟失更新(Lost未提交的讀(mitted不可重復(fù)讀(Non-repeatable幻象讀(PhantomDB2使用基于鎖的并發(fā)控制機(jī)制(lockingbaseconcurrency什么是事務(wù) 事務(wù)是一個(gè)不可分割的工作單位(UnitofWorkUOW)事務(wù)用來(lái)保持?jǐn)?shù)據(jù)的完整性在并 數(shù)據(jù)庫(kù)提交/回滾什么是丟失更新(Lost mittedRead, 了未提交的數(shù)據(jù)-一個(gè)終端用戶正在更新數(shù)據(jù),另一個(gè)終端用戶在沒(méi)有并發(fā)控制機(jī)制的情況下 -什么是不可重復(fù)讀(NonRepeatable一個(gè)事務(wù)的兩 中,讀到的數(shù)據(jù)是不同的,即在兩次事務(wù)之間發(fā)生了數(shù)據(jù)的修改 并發(fā)問(wèn)題什么是幻像讀(Phantom幻象的問(wèn)題與不可重復(fù)讀相似,不同之處在于隨后的 上。您可能會(huì)獲取額外一些行在在同一個(gè)UOW中Select兩次第二個(gè)Select返回額外一些行 -第二次會(huì)返回額外一些 DB2使用四種類型 級(jí)別(isolation未提交讀(UR):不加鎖,可以讀到未提交的數(shù)游標(biāo)穩(wěn)定性(CS):讀到哪一行就在這一行加S讀穩(wěn)定性(RS):查詢的結(jié)果集加S可重復(fù)讀(RR):凡是讀過(guò)的行都加S 四 級(jí)別所能解決的問(wèn)題對(duì)照表級(jí)丟失更未提交的不可重復(fù)的幻像 一般來(lái)說(shuō) 級(jí)別越高,它能提供的并發(fā)越少,性能越讀比較高的環(huán)境,使用UR或讀和寫都比較高的環(huán)境,若需要大的數(shù)據(jù)穩(wěn)定性,使用RR或 級(jí)別的粒SELECT…WITH會(huì)話級(jí)Session(應(yīng)用命令行:CHANGEISOLATIONTO{JDBC:Connectioncon=DriverManager.getConnection(this.aURL,this.USER, ED)對(duì)動(dòng)態(tài)SQL,在運(yùn)行時(shí)設(shè) 級(jí)SETCURRENTISOLATION對(duì)嵌入式SQL,在綁定或預(yù)編譯時(shí)設(shè) 級(jí)BIND<filename>…ISOLATIONPILE<filename>…ISOLATIONCurrently例子:未激活Currently
Currently例子:激活CurrentlyCurrently什么是Currently 級(jí)下的一種新的語(yǔ)返回最近 的數(shù)讀事務(wù)不再被寫事務(wù)阻V9.7新引入,默認(rèn)激使用CurrentlyCommitted有什么好處適合于這樣的應(yīng)用:可以接受最近 的數(shù)據(jù),不希望被其他寫事務(wù)阻提高事務(wù)吞吐量,從而系統(tǒng)的并發(fā)性提鎖的特DB2使用鎖機(jī)制來(lái)保證數(shù)據(jù)完整性,有下面的屬性使用方式:共享(Share)和排它–持有時(shí)間:在需要時(shí),鎖被DB2自動(dòng)獲事務(wù)提交或回滾時(shí),鎖被釋DB2的鎖策略基于下面的因素級(jí)(DDLDML,讀還是寫參數(shù)設(shè)置命令(LOCKTABLE或者ALTERTABLE…LOCKSIZE為什么會(huì)有意向(Intent)DB2在對(duì)表加其他鎖時(shí),通過(guò)檢查表上是否加了意向鎖,就能知道表中是否有一部分如何選擇鎖粒度 鎖粒度,影響對(duì)該表上的所有讀寫事BLOCKINSERT指定在插入時(shí)使用塊鎖(適用MDC表TABLE鎖升鎖升LOCKLIST一個(gè)應(yīng)用使用的鎖內(nèi)存達(dá)到解決鎖升級(jí)問(wèn)考慮如下方法調(diào)整LOCKLIST和MAXLOCKS數(shù)據(jù)庫(kù)配置參增加提交(commit)的頻重新審視您 級(jí)使用應(yīng)用程序能容許的最低 級(jí)如果表對(duì)并 不關(guān)鍵,可考慮使用LOCKTABLE語(yǔ)必 選擇這樣的當(dāng)負(fù)載高時(shí),不可能調(diào)整LOCKLIST或MAXLOCKS,則少非關(guān)鍵表的并 ,從而減少關(guān)鍵表上的鎖升 DB2的死解決死鎖問(wèn) 解決方案:在SELECT上使用FORUPDATE子這 數(shù)據(jù)會(huì)使用U鎖而不是NS優(yōu) 計(jì)劃(使用了表掃描而不是索引掃描 避免并發(fā)的DDL會(huì)更新和鎖定大量的編目盡可能早地提交DDL語(yǔ)句和DML語(yǔ)鎖超 由另一個(gè)應(yīng)用程序不兼容的鎖已經(jīng)鎖定的數(shù)據(jù),并且加鎖鎖等待可以是無(wú)限期的(如果持有鎖的應(yīng)用程序忘記提交或回滾DB2提供了鎖超時(shí)特性來(lái)防止應(yīng)用程序無(wú)限期的鎖等使用LOCKTIMEOUT數(shù)據(jù)庫(kù)配置參數(shù)啟用鎖超時(shí)檢-LOCKTIMEOUT缺省為-1(鎖超時(shí)檢測(cè)為關(guān)閉狀態(tài)如果鎖超時(shí)了會(huì)返回一個(gè)sqlcode911,原因代碼68的錯(cuò)誤事務(wù)將回避免死鎖的發(fā)使用SETCURRENTLOCKTIMEOUT語(yǔ)句在會(huì)話級(jí)別覆蓋數(shù)據(jù)庫(kù)級(jí)的配置參解決鎖超時(shí)問(wèn)如果可能的話,避免非常長(zhǎng)的事務(wù)和WITHHOLD游持有鎖的時(shí)間越長(zhǎng),和其他應(yīng)用程序爭(zhēng)奪資源的機(jī)會(huì)越寫的動(dòng)作,比如刪除,刪除和修避免查詢過(guò)大的結(jié)果集,特別是在 級(jí)別盡可能使用較低 級(jí) 和鎖的問(wèn) 快 (Snapshot(Event name>.nfy,僅適用于LINUX和UNIX平臺(tái))db2pd工 Db2pd–locks:捕獲鎖的詳細(xì)信Db2pdwlocks:捕獲鎖等待信Db2pd-apinfo<applhandle>:捕獲鎖擁有者和等待著詳細(xì)運(yùn)行時(shí)信db2pdlocks舉打開(kāi)一個(gè)會(huì) 設(shè) 級(jí)別為RS,隨后發(fā)起SELECT語(yǔ)句(不提交db2pdlocks舉鎖快照-舉Session Session鎖快照-分析1,UPDATEMONITORSWITCHESUSINGLOCK2,GETSNAPSHOTFORLOCKSON鎖快照鎖快照-分析據(jù)鎖快照鎖快照-分析器創(chuàng) 激 SETEVENTMONITOR<lockevmon>STATE收集信如果存入表,從STMT_LOCKEVMON中查詢相關(guān)信如果存入文件,使用命令db2evmon-path‘/home/db2inst1/eventmonitor’格式化文,分析相關(guān)信關(guān) SETEVENTMONITOR<lockevmon>STATE器-舉例Session Session業(yè)業(yè) 器-舉例 數(shù)社數(shù)社 器-舉例 日志 鎖現(xiàn)ADMIN消息(管理日志和設(shè)定MON_LCK_MSG_LVL配置(DB0–Nonotification1–Onlylognotificationforlockescalation2–Lognotificationforlockescalationand3–Lognotificationforlockescalation,deadlockandlock日志-鎖現(xiàn)象舉鎖升級(jí)消息W–Warningmessage,I–InformationalmessageE–ErrorDB2和Oracle鎖機(jī)制對(duì)1rle2“”R 2、Oracle不存在鎖升級(jí),DB2會(huì)發(fā)生鎖升級(jí) 級(jí)別,DB2讀 4、Oracle利用意向鎖及數(shù)據(jù)行上加鎖標(biāo)志位來(lái)實(shí)現(xiàn)鎖機(jī)制,DB2中的每個(gè)鎖都記5、DB2在做數(shù)據(jù)修改時(shí),在日志中既記錄了修改前數(shù)據(jù)(也就是UNDO日志),6,在Oracle中,當(dāng)一個(gè)應(yīng)用程序?qū)Ρ硪訧nsert、Update和Delete操作進(jìn)行修改時(shí)另外一個(gè)應(yīng)用程序在該表時(shí),會(huì)從回滾段中該表修改前的數(shù)據(jù)。而對(duì)于DB2V9.7之前的版本,數(shù)據(jù)的應(yīng)用程序,遇到正在被其他應(yīng)用程序修改的數(shù)據(jù)時(shí),將會(huì)進(jìn)行鎖等待(除非使用UR級(jí)別)。對(duì)于DB2V9.7及以后版本,由于引入了當(dāng)前已,數(shù)據(jù)的應(yīng)用程序?qū)⒉恍枰却i釋放,而是會(huì)從日志中數(shù)據(jù)修改前的版本(即已的版本,相 設(shè)計(jì)高并發(fā)應(yīng)用2、有 3、在SELECT中使用FORFETCHONLY從句,因?yàn)橹粫?huì)獲得NS共享鎖4、如果游標(biāo)是可更新的,使用FORUPDATE從句以最小化鎖轉(zhuǎn)換和死鎖的發(fā)生5、在一個(gè)工作單元的結(jié)束執(zhí)行INSERTUPDATEDELETE,能縮小持有X鎖的時(shí)間6、使用CLOSECURSOR語(yǔ)句的WITHRELEASE選項(xiàng),這減少了鎖的持有時(shí)間7、對(duì)只讀表使用ALTERTABLELOCKSIZETABLE,鎖粒度改變?yōu)楸?、以EXCLUSIVE模式使用LOCKTABLE語(yǔ)句務(wù)必謹(jǐn)慎9、調(diào)整參數(shù)LOCKLIST和MAXLOCKS,以最小化鎖升級(jí)的發(fā)設(shè)計(jì)高并發(fā)應(yīng)用10、只有必要時(shí)才記錄事務(wù)信息ALTERTABLEACTIVATENOTLOGGEDINITIALLYWITHEMPTY12、利用DB2數(shù)據(jù)移動(dòng)工具中的并行特性14、不要檢索不需要的數(shù)據(jù)。例如在SELECT語(yǔ)句中使用FETCHFIRSTnROWSONLY子句。 16、BI環(huán)境下因吞吐率低和主要以只讀為主,使用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)上冊(cè)數(shù)學(xué)教案 除數(shù)是整數(shù)的小數(shù)除法(二) 西師大版
- 二年級(jí)下冊(cè)數(shù)學(xué)教案 第1課時(shí) 東西南北 北師大版
- 三年級(jí)數(shù)學(xué)下冊(cè)教學(xué)設(shè)計(jì)-1.6集郵北師大版
- 六年級(jí)下冊(cè)數(shù)學(xué)教案-7.2 圖形與位置 ∣蘇教版
- 三年級(jí)下冊(cè)數(shù)學(xué)教案-5.5 求簡(jiǎn)單的經(jīng)過(guò)時(shí)間丨蘇教版
- 2025年房地產(chǎn)經(jīng)紀(jì)公司補(bǔ)充協(xié)議反饋 副本
- 2025年學(xué)習(xí)雷鋒精神62周年主題活動(dòng)實(shí)施方案 (3份)
- 湖南省2024年普通高等學(xué)校【對(duì)口】招生考試【師范類】專業(yè)【綜合知識(shí)】試題及答案
- 3-乘法-北師大版三年級(jí)下冊(cè)數(shù)學(xué)單元測(cè)試卷(含答案)
- 《晚春》歷年中考古詩(shī)欣賞試題匯編(截至2023年)
- 生活會(huì)前談心談話提綱
- 比較思想政治教育(第二版)第十二章課件
- 普通外科常見(jiàn)疾病臨床路徑
- 人教版區(qū)域地理課件世界地理之中亞五國(guó)【公開(kāi)課教學(xué)PPT課件】高中地理
- 人教版九年級(jí)下冊(cè)初中英語(yǔ)全冊(cè)作業(yè)設(shè)計(jì)一課一練(課時(shí)練)
- 2021新版GJB9001C-2017體系文件內(nèi)審檢查表
- 風(fēng)篩式清選機(jī)的使用與維護(hù)
- 《計(jì)算流體力學(xué)CFD》
- 馬克思主義宗教觀課件
- 語(yǔ)文版九年級(jí)下冊(cè)課外閱讀練習(xí)
- 【課件】第11課+美術(shù)的曙光-史前與早期文明的美術(shù)+課件高中美術(shù)人教版(2019)美術(shù)鑒賞
評(píng)論
0/150
提交評(píng)論