<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jcat
    寵辱不驚,閑看庭前花開花落~~
    posts - 173,comments - 67,trackbacks - 0

    一致和并發是對立的,需要根據應用,選擇權宜之計


    數據不一致的現象

    ---事務內單SQL的情況---
    1.臟讀-Dirty Read:本事務讀取了其它事務尚未提交的修改數據
    例子:讀了不該讀的
    1:00 x=1
    1:01 A用戶 Update x=2(但未commit)
    1:02 B用戶 Select x --> x=2
    合理的情況是x仍然等于1

    ---事務內多SQL的情況(典型的如,先查再改)---
    2.不可重復讀-Non Repeatable Read
    例子1:自相矛盾
    1:00 x=1 y=2
    1:01 B用戶 Select x,y --> x=1 y=2
    1:02 A用戶 Update x=2; Commit;
    1:03 B用戶 Select x+y --> x+y=4
    首先這個結果從單條SQL的角度看,是沒有問題的。但是,如果把B的兩次查詢看作一個整體(事務),那么合理的情況應該是
    ? x+y仍然等于3
    ? 或者B再進行一次事務,得出 x=2 y=2 x+y=4 的結果


    例子2:更新丟失
    1:00 x=1
    1:01 B用戶 Select x --> x=1
    1:02 A用戶 Select x --> x=1
    1:03 A用戶 Update x=2; Commit;
    1:04 B用戶 Update x=3; Commit;
    同樣,從單條SQL來講,沒有任何問題。
    但是從邏輯的合理性講,一般的更新操作都是先查再改,換言之
    ? A真正想做的是Update x from 1 to 2
    ? B真正想做的是Update x from 1 to 3
    但最終卻造成了在B不知情的情況下,把B的初衷改為了Update x from 2 to 3


    3.幻影讀-Phantom Read
    例子:讀到了未來
    1:00 X1=1 X2=2
    1:01 B用戶 Select Xi --> X1=1 X2=2
    1:02 A用戶 Insert X3=3; Commit;
    1:03 B用戶 Select sum(Xi) --> re=6
    其實道理和之前的不可重復讀相同,只不過是由Insert引起的罷了。
    (甚至Delete也會引起類似的問題,但好像學術界并沒有對Delete進行討論)




    Isolation Level
    Read Uncommitted:1,2,3都會發生
    ? Oracle中嚴格禁止臟讀
    ? 在SQL Server 7.0中,是可以選擇該級別的
    Read Committed:發生2,3(Oracle的默認級別)
    Repeatable Read:發生3
    Serializable:都不發生


    Oracle的實現方式
    Read Committed:默認就實現
    Repeatable Read:
    ? 1. 悲觀鎖(select ... for update),影響并發
    ? 2. 樂觀鎖(update where 所有字段都作為條件),不影響并發
    Serializable:
    ? alter session set isolation_level=serializable/read only
    posted on 2009-12-05 17:45 Jcat 閱讀(227) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 国产亚洲av片在线观看16女人 | 57pao一国产成永久免费| 国产免费久久精品99久久| 三级黄色免费观看| 最近中文字幕电影大全免费版 | 亚洲AV无码成H人在线观看| 免费h黄肉动漫在线观看| 亚洲一区二区三区偷拍女厕| 午夜亚洲国产理论秋霞| 精品丝袜国产自在线拍亚洲| 国产99久久亚洲综合精品| 免费污视频在线观看| 在线观看日本免费a∨视频| 国产免费私拍一区二区三区| 国产亚洲精品观看91在线| 亚洲日韩国产一区二区三区在线 | 久久免费动漫品精老司机| 毛片a级三毛片免费播放| 亚洲精品一级无码中文字幕| 亚洲综合无码一区二区| 人妻巨大乳hd免费看| 全免费一级午夜毛片| 久久综合亚洲色一区二区三区| 国产亚洲精品第一综合| 成人免费视频试看120秒| 亚洲电影一区二区三区| 免费视频成人国产精品网站| 最近中文字幕免费mv视频7| 亚洲va中文字幕无码久久| 国产精品内射视频免费| 日本免费高清一本视频| 亚洲欧美日韩中文二区| 2019中文字幕免费电影在线播放| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 免费a级毛片无码a∨性按摩| 亚洲AV日韩综合一区尤物| 久久久高清免费视频| 亚洲网站视频在线观看| 57PAO成人国产永久免费视频| 亚洲美女免费视频| 成年女人男人免费视频播放|