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

DB2隔離級(jí)的解讀與對(duì)其結(jié)果的試驗(yàn)

數(shù)據(jù)庫(kù)
以下文章主要是介紹DB2隔離級(jí)的解讀和試驗(yàn),以下是文章對(duì)DB2隔離級(jí)的解讀和試驗(yàn)的具體介紹,望你瀏覽完以下的內(nèi)容會(huì)有所收獲。

此文章主要向大家描述的是DB2隔離級(jí)的解讀和試驗(yàn),如果你對(duì)DB2隔離級(jí)的解讀和試驗(yàn)心存好奇的話,你就可以點(diǎn)擊以下的文章進(jìn)行觀看了,以下就是文章的詳細(xì)內(nèi)容介紹,望大家借鑒。

 

在DB2中,共有四種隔離級(jí):RS,RR,CS,UR.以下對(duì)四種隔離級(jí)進(jìn)行一些描述,同時(shí)附上個(gè)人做試驗(yàn)的結(jié)果。隔離級(jí)是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。

 

基本信息

 

摘要:在DB2中,共有四種隔離級(jí):RS,RR,CS,UR.以下對(duì)四種隔離級(jí)進(jìn)行一些描述,同時(shí)附上個(gè)人做試驗(yàn)的結(jié)果。隔離級(jí)是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。兩個(gè)應(yīng)用程序即使執(zhí)行的相同的操作,也可能由于選擇的DB2隔離級(jí)的不同而造成加鎖的結(jié)果不同。

隔離級(jí)解讀和試驗(yàn)

隔離級(jí)是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。兩個(gè)應(yīng)用程序即使執(zhí)行的相同的操作,也可能由于選擇的隔離級(jí)的不同而造成加鎖的結(jié)果不同。在DB2中,共有四種隔離級(jí):RS,RR,CS,UR.以下對(duì)四種隔離級(jí)進(jìn)行一些描述,同時(shí)附上個(gè)人做試驗(yàn)的結(jié)果。

讀可靠性(RS-Read Stability)

如果使用這種隔離級(jí),在一個(gè)事務(wù)中所有被讀取過(guò)的行上都會(huì)被加上NS鎖,直到該事務(wù)被提交或回滾,行上的鎖才會(huì)被釋放。這樣可以保證在一個(gè)事務(wù)中即使多次讀取同一行,得到的值不會(huì)改變。

但是,如果使用這種隔離級(jí),在一個(gè)事務(wù)中,如果使用同樣的搜索標(biāo)準(zhǔn)重新打開(kāi)已被處理過(guò)的游標(biāo),則結(jié)果集可能改變。(可能會(huì)增加某些行,這些行被稱為幻影行(Phantom))。這是因?yàn)镽S隔離級(jí)不能阻止通過(guò)插入或更新操作在結(jié)果集中加入新行。

個(gè)人筆記:

根據(jù)實(shí)際測(cè)試情況,RS模式下:查詢完畢以后,滿足條件的結(jié)果集中的記錄被鎖定,不滿足條件的不被鎖定。

可以對(duì)不滿足條件的記錄更新,也可以插入新的記錄。其他人可以查詢滿足已經(jīng)鎖定的記錄,但不可以更新。

重復(fù)讀(RR-Repeat Read)

如果使用這種DB2隔離級(jí),在一個(gè)事務(wù)中所有被讀取過(guò)的行上都會(huì)被加上S鎖,知道該事務(wù)被提交或回滾,行上的鎖才會(huì)被釋放。這樣可以保證在一個(gè)事務(wù)中即使多次讀取同一行,得到的值不會(huì)改變。

另外,在同一事務(wù)中如果以同樣的搜索標(biāo)準(zhǔn)重新打開(kāi)已被處理過(guò)的游標(biāo),得到的結(jié)果集不會(huì)改變。重復(fù)讀相對(duì)于讀可靠性而言,加鎖的范圍更大。

對(duì)于讀可靠性,應(yīng)用程序只對(duì)符合要求的所有行加鎖,而對(duì)于重復(fù)讀,應(yīng)用程序?qū)?duì)所有被掃描過(guò)的行都加鎖。例如,如果一個(gè)應(yīng)用程序?qū)σ粋€(gè)表中的 10000行數(shù)據(jù)進(jìn)行掃描,最終找到了100條符合搜索條件的結(jié)果行。如果該應(yīng)用程序使用的是讀可靠性隔離級(jí),應(yīng)用程序?qū)⒅粚?duì)這符合條件的100行加鎖;如果該應(yīng)用程序使用的是重復(fù)讀隔離級(jí),應(yīng)用程序?qū)?duì)被掃描過(guò)的10000行都加鎖。

個(gè)人筆記

根據(jù)實(shí)際測(cè)試情況,RR模式下:查詢完畢以后,不可以對(duì)不滿足條件的進(jìn)行更新,也不可以插入新記錄??赡茉蚴牵喝绻试S別人更新記錄或者插入新記錄的話,則可能造成原來(lái)結(jié)果集的破壞,重新讀的時(shí)候和以前不同。

select for update with rr/rs 是可以用來(lái)實(shí)現(xiàn)記錄鎖。是一種特殊情況。即便是RR,仍然可以對(duì)其他記錄操作。

游標(biāo)可靠性(CS-Cursor Stability)

如果使用這種隔離級(jí),在一個(gè)事務(wù)中,結(jié)果集中只有正在被讀取的那一行(游標(biāo)指向的行)將被加上NS鎖,其他未被處理的行上不被加鎖。這種隔離級(jí)只能保證正在被處理的行的值不會(huì)被其他并發(fā)的程序所改變。該隔離級(jí)是DB2缺省的DB2隔離級(jí)。

個(gè)人筆記

僅僅在游標(biāo)在該行的時(shí)候鎖定,這是一種非常弱的隔離狀態(tài)。

未提交讀(UR-Uncommitted Read)

如果使用這種隔離級(jí),對(duì)于只讀操作,不加行鎖。典型的只讀操作包括:

SELECT語(yǔ)句的結(jié)果集只讀(比如語(yǔ)句中包括ORDER BY子句);

定義游標(biāo)是指明起為FOR FETCH ONLY。

該隔離級(jí)可以改善應(yīng)用程序的性能,同時(shí)可以***程度的允許并發(fā)。但是,應(yīng)用程序的數(shù)據(jù)完整性將受到威脅。如果需要讀取未提交的數(shù)據(jù),該隔離級(jí)是唯一選擇。

個(gè)人筆記

讀的時(shí)候完全不受限制,對(duì)于同一行記錄的完整性也無(wú)法保證。

總結(jié)

以上我們所提的隔離級(jí)的加鎖范圍和持續(xù)時(shí)間都是針對(duì)于讀操作而言的。

對(duì)于更改操作,被修改的行上會(huì)被加上X鎖,不論使用何種DB2隔離級(jí),X鎖直到提交或回滾之后才會(huì)被釋放。

【編輯推薦】

  1.  如何避免DB2性能理解的20大誤區(qū)?
  2. IBM DB2 9只毒蛇這樣“毒”的原因是什么
  3. DB2 9 分布式管理之維護(hù)的描述
  4. DB2 V7存儲(chǔ)過(guò)程構(gòu)建環(huán)境的正確設(shè)置步驟
  5. DB2管理頁(yè)大小的一些限制條件有哪些?

 

責(zé)任編輯:佚名 來(lái)源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2010-07-29 10:30:41

DB2隔離級(jí)

2010-08-06 14:08:44

DB2隔離級(jí)解讀

2010-07-28 14:16:43

DB2驅(qū)動(dòng)類型

2010-09-30 16:41:36

DB2隔離級(jí)別

2010-08-26 10:13:52

DB2java連接

2010-08-04 13:51:05

2010-09-01 11:17:29

DB2備份

2010-11-03 10:35:45

DB2存儲(chǔ)過(guò)程

2010-08-02 17:30:30

DB2鎖等待

2010-08-04 17:33:39

DB2數(shù)據(jù)庫(kù)

2010-08-05 09:14:29

DB2隔離級(jí)別

2010-08-17 10:06:25

IBM DB2的數(shù)據(jù)復(fù)

2010-09-30 16:21:40

DB2隔離級(jí)別

2010-08-06 13:20:00

DB2鎖等待

2010-08-06 14:52:13

DB2 9.7武器

2010-07-27 15:02:30

DB2驅(qū)動(dòng)類型

2010-08-02 14:03:49

DB2驅(qū)動(dòng)類型

2010-08-03 11:33:30

DB2并置

2010-07-27 10:32:22

DB2數(shù)據(jù)庫(kù)編目

2010-08-25 14:46:53

DB2PostgreSQL開(kāi)發(fā)
點(diǎn)贊
收藏

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