• <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

            色综合久久综合网观看| 色综合久久88色综合天天| 国产精品激情综合久久| 亚洲伊人久久综合中文成人网| 亚洲欧美日韩久久精品第一区| 高清免费久久午夜精品| 无码八A片人妻少妇久久| 中文字幕亚洲综合久久| 精品国产乱码久久久久久郑州公司 | 精品99久久aaa一级毛片| 久久99精品久久久久久动态图 | 国产精品99久久久精品无码 | 久久91这里精品国产2020| 久久久久亚洲AV成人网人人网站 | 99久久99久久精品免费看蜜桃| 97久久久精品综合88久久| 国产免费久久精品99久久| 一本一本久久A久久综合精品 | 中文字幕亚洲综合久久| 午夜欧美精品久久久久久久| 久久精品国产精品亚洲下载| 久久久久国产视频电影| 伊人久久大香线蕉AV色婷婷色| 久久久精品久久久久久| 久久精品国产99国产精品澳门| av无码久久久久不卡免费网站| 要久久爱在线免费观看| 久久99精品国产麻豆不卡| 99久久成人国产精品免费| 亚洲国产一成人久久精品| 亚洲国产综合久久天堂 | 性做久久久久久久| 久久毛片一区二区| 亚洲精品乱码久久久久久按摩 | 久久99国产精品一区二区| 日产精品久久久一区二区| 久久精品国产精品青草app| 香蕉久久夜色精品升级完成| 婷婷久久香蕉五月综合加勒比| 蜜桃麻豆WWW久久囤产精品| 久久久久久亚洲精品影院|