• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            數據庫中的-臟讀,幻讀,不可重復讀

            Posted on 2010-03-17 00:10 Prayer 閱讀(489) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫,SQLDB2

            一.丟失更新
            當兩個或多個事務選擇同一行,然后基于最初選定的值更新該行時,會發生丟失更新問題。每個事務都不知道其它事務的存在。最后的更新將重寫由其它事務所做的更新,這將導致數據丟失。   

            e.g.事務A和事務B同時修改某行的值,

             1.事務A將數值改為1并提交

                   2.事務B將數值改為2并提交。

            這時數據的值為2,事務A所做的更新將會丟失。

             

            解決辦法:對行加鎖,只允許并發一個更新事務。

            二.未確認的相關性(臟讀)
              當第二個事務選擇其它事務正在更新的行時,會發生未確認的相關性問題。第二個事務正在讀取的數據還沒有確認并且可能由更新此行的事務所更改。

                  e.g.

                    1.Mary的原工資為1000, 財務人員將Mary的工資改為了8000(但未提交事務)         2.Mary讀取自己的工資 ,發現自己的工資變為了8000,歡天喜地!

                 3.而財務發現操作有誤,回滾了事務,Mary的工資又變為了1000

                  像這樣,Mary記取的工資數8000是一個臟數據。

             

             解決辦法:如果在第一個事務提交前,任何其他事務不可讀取其修改過的值,則可  以避免該問題。


            三.不一致的分析(非重復讀)
              當第二個事務多次訪問同一行而且每次讀取不同的數據時,會發生不一致的分析問題。不一致的分析與未確認的相關性類似,因為其它事務也是正在更改第二個事務正在讀取的數據。然而,在不一致的分析中,第二個事務讀取的數據是由已進行了更改的事務提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次信息都由其它事務更改;因而該行被非重復讀取。

                  在一個事務中前后兩次讀取的結果并不致,導致了不可重復讀。


            e.g.

            1.在事務1中,Mary 讀取了自己的工資為1000,操作并沒有完成

            2.在事務2中,這時財務人員修改了Mary的工資為2000,并提交了事務.

            3.在事務1中,Mary 再次讀取自己的工資時,工資變為了2000


            解決辦法:如果只有在修改事務完全提交之后才可以讀取數據,則可以避免該問題。


             四.幻像讀     

              當對某行執行插入或刪除操作,而該行屬于某個事務正在讀取的行的范圍時,會發生幻像讀問題。事務第一次讀的行范圍顯示出其中一行已不復存在于第二次讀或后續讀中,因為該行已被其它事務刪除。同樣,由于其它事務的插入操作,事務的第二次或后續讀顯示有一行已不存在于原始讀中。

               e.g. 目前工資為1000的員工有10人。

            1.事務1,讀取所有工資為1000的員工。

            2.這時事務2向employee表插入了一條員工記錄,工資也為1000

            3.事務1再次讀取所有工資為1000的員工 共讀取到了11條記錄,

             

            解決辦法:如果在操作事務完成數據處理之前,任何其他事務都不可以添加新數據,則可避免該問題


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/d8111/archive/2008/06/29/2595635.aspx

            欧美黑人激情性久久| 久久国产精品-久久精品| 99久久www免费人成精品| 99久久免费国产特黄| 久久精品国产亚洲麻豆| 精品久久久久久无码中文野结衣| 激情久久久久久久久久| 伊人久久国产免费观看视频| 国内高清久久久久久| 97久久精品无码一区二区天美| 欧美亚洲国产精品久久蜜芽| 国产精品青草久久久久福利99 | 久久综合中文字幕| 精品久久香蕉国产线看观看亚洲| 国产激情久久久久影院老熟女免费| 国产精品久久久久aaaa| 久久成人精品视频| 久久精品国产99国产精品| 久久精品桃花综合| 久久精品嫩草影院| 囯产极品美女高潮无套久久久 | 精品国产乱码久久久久久1区2区 | 性欧美大战久久久久久久| 精品一二三区久久aaa片| 亚洲国产成人久久精品动漫| 亚洲国产精品综合久久一线| 91视频国产91久久久| 久久久久99这里有精品10| 中文字幕亚洲综合久久2| 无码人妻精品一区二区三区久久 | 亚洲精品乱码久久久久久不卡| 色偷偷久久一区二区三区| 久久伊人精品青青草原日本| 精品久久久久久久| 久久久久亚洲AV无码永不| 久久只有这里有精品4| 久久综合久久久| 国产精品久久久久影视不卡| 精品综合久久久久久97| 久久久午夜精品| 模特私拍国产精品久久|