• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    DB2隔離級別之RR/RS/CS/UR

    來源:懂視網 責編:小采 時間:2020-11-09 15:02:12
    文檔

    DB2隔離級別之RR/RS/CS/UR

    DB2隔離級別之RR/RS/CS/UR:1.RR隔離級別:在此隔離級別下, DB2會鎖住所有相關的紀錄。 在一個SQL語句執行期間, 所有執行此語句掃描過的紀錄都會被加上相應的鎖。在一個SQL語句執行期間,所有執行此語句掃描過的紀錄都會被加上相應的鎖。 具體的鎖的類型還是由操作的類型來決定, 如
    推薦度:
    導讀DB2隔離級別之RR/RS/CS/UR:1.RR隔離級別:在此隔離級別下, DB2會鎖住所有相關的紀錄。 在一個SQL語句執行期間, 所有執行此語句掃描過的紀錄都會被加上相應的鎖。在一個SQL語句執行期間,所有執行此語句掃描過的紀錄都會被加上相應的鎖。 具體的鎖的類型還是由操作的類型來決定, 如

    1.RR隔離級別:在此隔離級別下, DB2會鎖住所有相關的紀錄。 在一個SQL語句執行期間, 所有執行此語句掃描過的紀錄都會被加上相應的鎖。在一個SQL語句執行期間,所有執行此語句掃描過的紀錄都會被加上相應的鎖。 具體的鎖的類型還是由操作的類型來決定, 如果

    1.RR隔離級別:在此隔離級別下, DB2會鎖住所有相關的紀錄。 在一個SQL語句執行期間, 所有執行此語句掃描過的紀錄都會被加上相應的鎖。在一個SQL語句執行期間,所有執行此語句掃描過的紀錄都會被加上相應的鎖。 具體的鎖的類型還是由操作的類型來決定, 如果是讀取,則加共享鎖; 如果是更新, 則加獨占鎖。具體的鎖的類型還是由操作的類型來決定,如果是讀取,則加共享鎖;如果是更新,則加獨占鎖。 由于會鎖定所有為獲得SQL語句的結果而掃描的紀錄, 所以鎖的數量可能會很龐大, 這個時候, 索引的增加可能會對SQL語句的執行有很大的影響,因為索引會影響SQL語句掃描的紀錄數量。由於會鎖定所有為獲得SQL語句的結果而掃描的紀錄,所以鎖 的數量可能會很龐大,這個時候,索引的增加可能會對SQL語句的執行有很大的影響,因為索引會影響SQL語句掃描的紀錄數量。

    2.RS隔離級別:此隔離級別的要求比RR隔離級別稍弱,此隔離級別下會鎖定所有符合條件的紀錄。 不論是讀取, 還是更新, 如果SQL語句中包含查詢條件, 則會對所有符合條件的紀錄加相應的鎖。不論是讀取,還是更新,如果SQL語句中包含查詢條件,則會對所有符合條件的紀錄加相應的鎖。 如果沒有條件語句, 也就是對表中的所有記錄進行處理,則會對所有的紀錄加鎖。如果沒有條件語句,也就是對錶中的所有記錄進行處理,則會對所有的紀錄加鎖。

    3.CS隔離級別:此隔離級別僅鎖住當前處理的紀錄。

    4.UR隔離級別:此隔離級別下,如果是讀取操作,不會出現任何的行級鎖。 對于非只讀的操作,它的鎖處理和CS相同。對於非只讀的操作,它的鎖處理和CS相同。

    DB2默認的隔離級別是CS。 DB2默認的隔離級別是CS。 即游標穩定性。即游標穩定性。
    在DB2中,共有四種隔離級:RS,RR,CS,UR
    eg:db2 select * from topicis.dm_qylx with ur
    UR:UR-Uncommitted Read 未提交讀
    是sql執行時的一種隔離級別,允許臟讀,不加行鎖
    不帶with UR的話,select count(1) 常見的是S鎖! update 應該是X鎖;應該會發生等待!
    帶上with ur,select count(1) 應該是IN鎖, update 是x鎖;剛好不會等待!
    剛剛測試了下

    C:\>db2 create table a(a int)
    DB20000I SQL命令成功完成。

    C:\>db2 insert into a values(1)
    DB20000I SQL命令成功完成。

    C:\>db2 commit
    DB20000I SQL命令成功完成。

    C:\>db2 +c select count(*) from a

    1
    -----------
    1

    1 條記錄已選擇。

    這個時候的 lock 的情況是

    C:\>db2pd -d test -lock

    Database Partition 0 -- Database TEST -- Active -- Up 0 days 00:20:49

    Locks:
    Address TranHdl Lockname Type Mode Sts Owner
    Dur HoldCount Att ReleaseFlg
    0x05190450 2 53514C4332463041F12CF8E241 Internal P ..S G 2
    1 0 0x00 0x40000000

    在另外一個 db2cmd 中

    C:\>db2 +c update a set a=2
    DB20000I SQL命令成功完成。

    這時的 lock 情況如下
    C:\>db2pd -d test -lock

    Database Partition 0 -- Database TEST -- Active -- Up 0 days 00:21:03

    Locks:
    Address TranHdl Lockname Type Mode Sts Owner
    Dur HoldCount Att ReleaseFlg
    0x051911E0 6 05000F00040000050000000052 Row ..X G 6
    1 0 0x00 0x40000000
    0x05190450 2 53514C4332463041F12CF8E241 Internal P ..S G 2
    1 0 0x00 0x40000000
    0x05190300 6 53514C4332463041F12CF8E241 Internal P ..S G 6
    1 0 0x00 0x40000000
    0x051911B0 6 05000F00000000000000000054 Table .IX G 6
    1 0 0x00 0x40000000

    __________________
    The More You Know The More You're Worth
    http://macrozeng.itpub.net
    macrozeng#itpub.net
    同樣的測試加上 for read only with ur

    C:\>db2 commit
    DB20000I SQL命令成功完成。

    C:\>db2 +c select count(*) from a for read only with ur

    1
    -----------
    1

    1 條記錄已選擇。

    這時的 lock 情況如下
    C:\>db2pd -d test -lock

    Database Partition 0 -- Database TEST -- Active -- Up 0 days 00:27:56

    Locks:
    Address TranHdl Lockname Type Mode Sts Owner
    Dur HoldCount Att ReleaseFlg
    0x05191B70 2 53514C4332463041F12CF8E241 Internal P ..S G 2
    1 0 0x00 0x40000000

    在另外一個 db2cmd 中
    C:\>db2 +c update a set a=2
    DB20000I SQL命令成功完成。

    這時的 lock 情況如下

    C:\>db2pd -d test -lock

    Database Partition 0 -- Database TEST -- Active -- Up 0 days 00:28:23

    Locks:
    Address TranHdl Lockname Type Mode Sts Owner
    Dur HoldCount Att ReleaseFlg
    0x05190330 6 05000F00040000050000000052 Row ..X G 6
    1 0 0x00 0x40000000
    0x05191B70 2 53514C4332463041F12CF8E241 Internal P ..S G 2
    1 0 0x00 0x40000000
    0x05190570 6 53514C4332463041F12CF8E241 Internal P ..S G 6
    1 0 0x00 0x40000000
    0x05191240 6 05000F00000000000000000054 Table .IX G 6

    1 0 0x00 0x40000000

    小結:

    1、ur(Uncommited Read):就是俗稱“臟讀“,在沒有提交數據的時候能夠讀到更新的數據;即select數據時,無需等待正在對數據進行的update操作。
    
    2、cs(Cursor Stability):在使用游標穩定性隔離級別時,一個事務的結果集中只有正在被讀取的那一行(游標指向的行)會被加上NS鎖,其他未被處理的行上不被加鎖。這種隔離級別只能保證正在被處理的行的值不會被其他并發的程序所改變。該隔離級別是DB2默認的隔離級別。可以避免臟讀的發生,但無法避免不可重復讀和幻讀的情況發生。
    
    3、rs(Read Stability):在一個事務中進行查詢時,不允許讀取其他事務update結果集中的數據,允許讀取到其他事務提交的新增數據。會鎖定結果集中的所有行,會解決不可重復讀問題,但無法解決幻讀的問題。
    
    4、rr(Repeatable Read):在一個事務中進行查詢時,不允許任何對這個查詢表的數據修改。對該表的操作徹底為序列化的形式,效率最低,可避免任何問題。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    DB2隔離級別之RR/RS/CS/UR

    DB2隔離級別之RR/RS/CS/UR:1.RR隔離級別:在此隔離級別下, DB2會鎖住所有相關的紀錄。 在一個SQL語句執行期間, 所有執行此語句掃描過的紀錄都會被加上相應的鎖。在一個SQL語句執行期間,所有執行此語句掃描過的紀錄都會被加上相應的鎖。 具體的鎖的類型還是由操作的類型來決定, 如
    推薦度:
    標簽: 鎖住 級別 rr
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品久久久亚洲| 99热这里只有精品国产66| 日本精品不卡视频| 亚洲日韩精品A∨片无码| 国产精品va在线观看无码| 99久久精品日本一区二区免费| 日韩精品免费一线在线观看| 久久久久九国产精品| 国产伦精品一区二区三区视频金莲| 国产日韩精品中文字无码| 亚洲精品成人在线| 国产精品乱伦| 欧美精品免费在线| 国产国拍亚洲精品mv在线观看| 最新精品国偷自产在线| 精品精品国产欧美在线小说区| 欧美韩国精品另类综合| 99精品免费视品| 久久精品亚洲一区二区三区浴池 | 日韩精品无码久久久久久| 精品水蜜桃久久久久久久| 久久精品www| 91国在线啪精品一区| 日韩精品久久无码人妻中文字幕| 人妻一区二区三区无码精品一区| 精品国产国产综合精品| 国产精品一区三区| 国产精品一区三区| 国产av无码专区亚洲国产精品| 香蕉国产精品频视| 久久久国产精品福利免费| 国产精品福利在线播放| 2022国产精品福利在线观看| 国产精品亚洲片在线| 日韩人妻精品一区二区三区视频| 亚洲综合精品香蕉久久网| 亚洲色精品88色婷婷七月丁香| 在线成人精品国产区免费| 日韩精品久久无码人妻中文字幕| 精品无码AV无码免费专区| 精品无码av一区二区三区|