国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

mssql鎖基礎(chǔ)教程

2024-07-21 02:32:22
字體:
供稿:網(wǎng)友

1.了解鎖
         鎖定是數(shù)據(jù)庫引擎用來同步多個用戶同時對同一個數(shù)據(jù)塊的訪問的一種機制。
         在事務(wù)獲取數(shù)據(jù)塊當(dāng)前狀態(tài)的依賴關(guān)系之前,它必須保護(hù)自己不受其他事務(wù)對同一數(shù)據(jù)進(jìn)行修改的影響。

鎖粒度和層次結(jié)構(gòu)

        RID 用于鎖定堆中的單個行的行標(biāo)識符。
        KEY 索引中用于保護(hù)可序列化事務(wù)中的鍵范圍的行鎖。
        PAGE 數(shù)據(jù)庫中的 8 KB 頁,例如數(shù)據(jù)頁或索引頁。
        EXTENT 一組連續(xù)的八頁,例如數(shù)據(jù)頁或索引頁。
        HOBT 堆或 B 樹。保護(hù)索引或沒有聚集索引的表中數(shù)據(jù)頁堆的鎖。
        TABLE 包括所有數(shù)據(jù)和索引的整個表。
        FILE 數(shù)據(jù)庫文件。
        application 應(yīng)用程序?qū)S玫馁Y源。
        METADATA 元數(shù)據(jù)鎖。
        ALLOCATION_UNIT 分配單元。
        DATABASE 整個數(shù)據(jù)庫。

鎖模式:
         共享鎖(S):用于只讀操作(SELECT),鎖定共享的資源。共享鎖不會阻止其他用戶讀,但是阻止其他的用戶寫和修改。
         排他(獨占)鎖(X): 用于數(shù)據(jù)修改操作,例如 INSERT、UPDATE 或 DELETE。確保不會同時對同一資源進(jìn)行多重更新。
         更新鎖(U): 當(dāng)更新事務(wù)數(shù)據(jù)需要獲取排它鎖時,必須先獲取更新瑣。引擎為防止死鎖的發(fā)生,一次允許允許一個事務(wù)可以獲得資源的更新鎖(U 鎖),只有獲取更新鎖的查詢才可創(chuàng)建排它鎖。
         意向鎖: 用于建立鎖的層次結(jié)構(gòu)。意向鎖的類型有:意向共享 (IS)、意向排他 (IX) 以及意向排他共享 (SIX)。引擎在創(chuàng)建共享鎖和獨占鎖之前,先使用意向鎖來保護(hù)共享鎖(S 鎖)或排他鎖(X 鎖)放置在鎖層次結(jié)構(gòu)的底層資源上
         架構(gòu)鎖(Sch-M):執(zhí)行表的數(shù)據(jù)定義語言 (DDL) 操作時使用架構(gòu)鎖。在架構(gòu)修改鎖起作用的期間,該鎖之外的所有操作都將被阻止.
        大容量更新鎖(BU 鎖):當(dāng)將數(shù)據(jù)大容量復(fù)制到表,且指定了 TABLOCK 提示或者使用 sp_tableoption 設(shè)置了 table lock on bulk 表選項時,將使用大容量更新鎖。大容量更新鎖(BU 鎖)允許多個線程將數(shù)據(jù)并發(fā)地大容量加載到同一表,同時防止其他不進(jìn)行大容量加載數(shù)據(jù)的進(jìn)程訪問該表。

監(jiān)視與管理鎖


         使用 SQL Server PRofiler監(jiān)視Locks 事件,來捕獲有關(guān)跟蹤中鎖事件的信息的鎖事件類別。
         使用系統(tǒng)監(jiān)視器監(jiān)視SQL Server Locks 對象,監(jiān)視數(shù)據(jù)庫引擎實例中的鎖級別。
         查詢 sys.dm_tran_locks 動態(tài)管理視圖獲得有關(guān)數(shù)據(jù)庫引擎 實例中鎖當(dāng)前狀態(tài)的信息。
         使用系統(tǒng)存儲過程sp_lock (Transact-SQL) 返回有關(guān)數(shù)據(jù)庫引擎實例中的活動鎖的信息。對于 SQL Server 2005,請改用 sys.dm_tran_locks 動態(tài)管理視圖。
         使用系統(tǒng)視圖sys.syslockinfo (Transact-SQL)返回有關(guān)數(shù)據(jù)庫引擎 實例中的活動鎖的信息。對于 SQL Server 2005,請改用 sys.dm_tran_locks 動態(tài)管理視圖。

將死鎖減至最少

         按同一順序訪問對象。
         避免事務(wù)中的用戶交互。
         保持事務(wù)簡短并處于一個批處理中。
         使用較低的隔離級別。
         使用基于行版本控制的隔離級別。
          將 READ_COMMITTED_SNAPSHOT 數(shù)據(jù)庫選項設(shè)置為 ON,使得已提交讀事務(wù)使用行版本控制。
          使用快照隔離。
          使用綁定連接。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 康马县| 祁阳县| 濉溪县| 宜兴市| 洞头县| 盖州市| 武胜县| 阳朔县| 阳山县| 郧西县| 长春市| 永城市| 高雄市| 宿州市| 大方县| 青龙| 馆陶县| 兴山县| 乌兰察布市| 大庆市| 黄骅市| 洛宁县| 福安市| 增城市| 兴安盟| 甘德县| 安岳县| 韶山市| 马龙县| 彭阳县| 监利县| 永年县| 湖北省| 武鸣县| 玉林市| 阜阳市| 历史| 盐池县| 电白县| 甘洛县| 晋中市|