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

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

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

    隨筆-19  評論-5  文章-3  trackbacks-0
    在聯機事務處理(OLTP)的數據庫應用系統中,多用戶、多任務的并發性是系統最重要的技術指標之一。為了提高并發性,目前大部分RDBMS都采用加鎖技術。然而由于現實環境的復雜性,使用加鎖技術又不可避免地產生了死鎖問題。因此如何合理有效地使用加鎖技術,最小化死鎖是開發聯機事務處理系統的關鍵。          
    死鎖產生的原因           
        在聯機事務處理系統中,造成死機主要有兩方面原因。一方面,由于多用戶、多任務的并發性和事務的完整性要求,當多個事務處理對多個資源同時訪問時,若雙方已鎖定一部分資源但也都需要對方已鎖定的資源時,無法在有限的時間內完全獲得所需的資源,就會處于無限的等待狀態,從而造成其對資源需求的死鎖。           
        另一方面,數據庫本身加鎖機制的實現方法不同,各數據庫系統也會產生其特殊的死鎖情況。如在Sybase       SQL Server 11中,最小鎖為2K一頁的加鎖方法,而非行級鎖。如果某張表的記錄數少且記錄的長度較短(即記錄密度高,如應用系統中的系統配置表或系統參數表就屬于此類表),被訪問的頻率高,就容易在該頁上產生死鎖。
             
    容易發生死鎖的幾種情況如下:           
    1>不同的存儲過程、觸發器、動態SQL語句段按照不同的順序同時訪問多張表;              
    2>在交換期間添加記錄頻繁的表,但在該表上使用了非群集索引(non-clustered);              
    3>表中的記錄少,且單條記錄較短,被訪問的頻率較高;          
    4>整張表被訪問的頻率高(如代碼對照表的查詢等)。           

    以上死鎖情況的對應處理方法如下: 
           
    1>在系統實現時應規定所有存儲過程、觸發器、動態SQL語句段中,對多張表的操作總是使用同一順序。如:有兩個存儲過程proc1、proc2,都需要訪問三張表zltab、z2tab和z3tab,如果proc1按照zltab、z2tab和z3tab的順序進行訪問,那么,proc2也應該按照以上順序訪問這三張表。          
    2>對在交換期間添加記錄頻繁的表,使用群集索引(clustered),以減少多個用戶添加記錄到該表的最后一頁上,在表尾產生熱點,造成死鎖。這類表多為往來賬的流水表,其特點是在交換期間需要在表尾追加大量的記錄,并且對已添加的記錄不做或較少做刪除操作。          
    3>對單張表中記錄數不太多,且在交換期間select或updata較頻繁的表可使用設置每頁最大行的辦法,減少數據在表中存放的密度,模擬行級鎖,減少在該表上死鎖情況的發生。這類表多為信息繁雜且記錄條數少的表。
               
    如:系統配置表或系統參數表。在定義該表時添加如下語句:           
    with   max_rows_per_page=1           
    在存儲過程、觸發器、動態SQL語句段中,若對某些整張表select操作較頻繁,則可能在該表上與其他訪問該表的用戶產生死鎖。對于檢查賬號是否存在,但被檢查的字段在檢查期間不會被更新等非關鍵語句,可以采用在select命令中使用at       isolation       read       uncommitted子句的方法解決。該方法實際上降低了select語句對整張表的鎖級別,提高了其他用戶對該表操作的并發性。在系統高負荷運行時,該方法的效果尤為顯著。           
    如:          
    select * from titles at isolation read uncommitted          
    對流水號一類的順序數生成器字段,可以先執行updata流水號字段+1,然后再執行select獲取流水號的方法進行操作。

    版權歸原作者和各發布網站所有,此文章僅供學習參考之用  

    天天學習,好好向上——

    posted on 2008-11-06 18:11 東頭bing阿頭 閱讀(12374) 評論(0)  編輯  收藏 所屬分類: DataBase



    主站蜘蛛池模板: 麻豆成人精品国产免费| 男男AV纯肉无码免费播放无码 | 一级毛片免费观看不收费| 四虎成人免费网站在线| 亚洲日日做天天做日日谢| 亚洲电影免费在线观看| 亚洲最新永久在线观看| 亚洲一区二区三区免费在线观看| 久久亚洲私人国产精品vA| 亚洲精品免费视频| 亚洲国产美女精品久久久久| 性xxxxx免费视频播放| 亚洲人成综合在线播放 | 国产精品久久久久久久久久免费| 亚洲伊人久久大香线蕉| 四虎影院在线免费播放| 美女黄色毛片免费看| 丁香五月亚洲综合深深爱| 国产一级淫片a免费播放口| 久久亚洲成a人片| 中文毛片无遮挡高潮免费| 亚洲国产高清美女在线观看| 丁香花免费完整高清观看| 亚洲人AV在线无码影院观看| 2022国内精品免费福利视频| 亚洲伊人久久大香线蕉结合| 亚洲国语在线视频手机在线| 九九精品免费视频| 国产精品高清视亚洲精品| 全亚洲最新黄色特级网站 | 五月天国产成人AV免费观看| 亚洲色婷婷综合久久| 91免费人成网站在线观看18| 亚洲欧美第一成人网站7777| 久久精品国产亚洲精品| 97国产在线公开免费观看| 亚洲色一区二区三区四区| 亚洲一区二区三区无码中文字幕| 中文字幕免费在线观看| 毛片亚洲AV无码精品国产午夜 | 亚洲国产精品成人精品无码区在线|