• <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 閱讀(484) 評論(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

            欧美黑人激情性久久| 日本一区精品久久久久影院| 亚洲v国产v天堂a无码久久| 亚洲国产综合久久天堂| 午夜不卡久久精品无码免费| 粉嫩小泬无遮挡久久久久久| 精品久久久久久99人妻| 久久久久久曰本AV免费免费| 久久精品九九亚洲精品天堂| 久久精品国产精品亚洲人人| 日韩乱码人妻无码中文字幕久久| 国产精品久久一区二区三区| 无夜精品久久久久久| 成人综合伊人五月婷久久| 香蕉99久久国产综合精品宅男自 | 久久人人爽人人爽人人av东京热| 亚洲精品tv久久久久久久久| 久久国产V一级毛多内射| 久久水蜜桃亚洲av无码精品麻豆| 久久久久18| 一级做a爱片久久毛片| 97精品伊人久久久大香线蕉 | 2021久久国自产拍精品| 蜜臀久久99精品久久久久久| 久久99热国产这有精品| 亚洲AV无一区二区三区久久| 四虎影视久久久免费观看| 97久久精品人人澡人人爽| 精品少妇人妻av无码久久| 一级女性全黄久久生活片免费 | 好久久免费视频高清| 18岁日韩内射颜射午夜久久成人 | 国产精品久久久久影院色| 亚洲中文字幕无码一久久区| 亚洲国产精品综合久久网络| 久久久久一本毛久久久| 久久综合成人网| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产精品欧美久久久久天天影视 | 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 狠狠色丁香久久婷婷综合蜜芽五月 |