一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

SQL Server數(shù)據(jù)庫表鎖定原理以及如何解除表的鎖定

  1. 數(shù)據(jù)庫表鎖定原理

  1.1 目前的C/S,B/S結構都是多用戶訪問數(shù)據(jù)庫,每個時間點會有成千上萬個user來訪問DB,其中也會同時存取同一份數(shù)據(jù),會造成數(shù)據(jù)的不一致性或者讀臟數(shù)據(jù)。

 

  1.2 事務的ACID原則

 

  1.3 鎖是關系數(shù)據(jù)庫很重要的一部分, 數(shù)據(jù)庫必須有鎖的機制來確保數(shù)據(jù)的完整和一致性。

  1.3.1 SQL Server中可以鎖定的資源:

  1.3.2 鎖的粒度:

  1.3.3 鎖的升級:鎖的升級門限以及鎖升級是由系統(tǒng)自動來確定的,不需要用戶設置。

  1.3.4 鎖的類型

  (1) 共享鎖:共享鎖用于所有的只讀數(shù)據(jù)操作。

  (2) 修改鎖:修改鎖在修改操作的初始化階段用來鎖定可能要被修改的資源,這樣可以避免使用共享鎖造成的死鎖現(xiàn)象。

  (3) 獨占鎖:獨占鎖是為修改數(shù)據(jù)而保留的。它所鎖定的資源,其他事務不能讀取也不能修改。獨占鎖不能和其他鎖兼容。

  (4) 架構鎖:結構鎖分為結構修改鎖(Sch-M)和結構穩(wěn)定鎖(Sch-S)。執(zhí)行表定義語言操作時,SQL Server采用Sch-M鎖,編譯查詢時,SQL Server采用Sch-S鎖。 

  (5) 意向鎖:意向鎖說明SQL Server有在資源的低層獲得共享鎖或獨占鎖的意向。

  (6) 批量修改鎖:批量復制數(shù)據(jù)時使用批量修改鎖。

  1.3.4 SQL Server鎖類型   

  (1) HOLDLOCK: 在該表上保持共享鎖,直到整個事務結束,而不是在語句執(zhí)行完立即釋放所添加的鎖。   

  (2) NOLOCK:不添加共享鎖和排它鎖,當這個選項生效后,可能讀到未提交讀的數(shù)據(jù)或“臟數(shù)據(jù)”,這個選項僅僅應用于SELECT語句。   

  (3) PAGLOCK:指定添加頁鎖(否則通常可能添加表鎖)。    

  (4) READCOMMITTED用與運行在提交讀隔離級別的事務相同的鎖語義執(zhí)行掃描。默認情況下,SQL Server 2000 在此隔離級別上操作。

  (5) READPAST: 跳過已經(jīng)加鎖的數(shù)據(jù)行,這個選項將使事務讀取數(shù)據(jù)時跳過那些已經(jīng)被其他事務鎖定的數(shù)據(jù)行,而不是阻塞直到其他事務釋放鎖,READPAST僅僅應用于READ COMMITTED隔離性級別下事務操作中的SELECT語句操作。    

  (6) READUNCOMMITTED:等同于NOLOCK。    

  (7) REPEATABLEREAD:設置事務為可重復讀隔離性級別。    

(  8) ROWLOCK:使用行級鎖,而不使用粒度更粗的頁級鎖和表級鎖。     

  (9) SERIALIZABLE:用與運行在可串行讀隔離級別的事務相同的鎖語義執(zhí)行掃描。等同于 HOLDLOCK。    

  (10) TABLOCK:指定使用表級鎖,而不是使用行級或頁面級的鎖,SQL Server在該語句執(zhí)行完后釋放這個鎖,而如果同時指定了HOLDLOCK,該鎖一直保持到這個事務結束。

  (11) TABLOCKX:指定在表上使用排它鎖,這個鎖可以阻止其他事務讀或更新這個表的數(shù)據(jù),直到這個語句或整個事務結束。    

  (12) UPDLOCK :指定在讀表中數(shù)據(jù)時設置更新 鎖(update lock)而不是設置共享鎖,該鎖一直保持到這個語句或整個事務結束,使用UPDLOCK的作用是允許用戶先讀取數(shù)據(jù)(而且不阻塞其他用戶讀數(shù)據(jù)),并且保證在后來再更新數(shù)據(jù)時,這一段時間內這些數(shù)據(jù)沒有被其他用戶修改。

  (本段摘自CSDN博客: http://blog.csdn.NET/zp752963831/archive/2009/02/18/3906477.ASPx)

  2. 如何解除表的鎖定,解鎖就是要終止鎖定的那個鏈接,或者等待該鏈接事務釋放。

  2.1 Activity Monitor

  可以通過Wait Type,Blocked By欄位查看到,SPID 54 被SPID 53 阻塞。 可以右鍵Details查到詳細的SQL 語句,或Kill掉這個進程。

  2.2 SQL Server提供幾個DMV,查看locks:

  sys.dm_exec_requests

  sys.dm_tran_locks

  sys.dm_os_waiting_tasks

  sys.dm_tran_database_transactions

  (1)

 

select * from sys.dm_tran_locks where  resource_type<>'DATABASE' --and resource_database_id=DB_ID()

it知識庫SQL Server數(shù)據(jù)庫表鎖定原理以及如何解除表的鎖定,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91久久亚洲国产成人精品性色 | 日本一道一区二区免费看 | 一区二区网站在线观看 | 日本高清无卡码一区二区久久 | 欧美亚洲国产精品久久久 | 婷婷在线免费观看 | 成人午夜小视频 | 污片免费在线观看 | 国产在线播放成人免费 | 国产精品国产色综合色 | 99精品视频看国产啪视频 | 美女视频黄视大全视频免费的 | 五月天亚洲综合 | 色偷偷资源 | 操亚洲 | 五月婷婷六月婷婷 | 婷婷色基地 | 一区二区三区日韩精品 | 香蕉一区二区三区观 | 欧美一级亚洲一级 | 一区二区在线观看高清 | 亚洲视频网站在线观看 | 色呦呦在线看 | 国产精品福利一区二区 | 欧美三级成人观看 | 国产美女在线精品观看 | 日韩欧美一中文字幕不卡 | 国产高跟黑色丝袜在线 | 亚洲日本1区2区3区二区 | 日本视频www | 女人洗澡一级毛片一级毛片 | 色婷婷中文字幕 | 色婷婷伊人 | 日本一区二区视频在线观看 | 欧美色欧美亚洲高清在线观看 | 日本加勒比中文字幕 | 狠狠夜色午夜久久综合热91 | 任我鲁任我在线精品视频 | 日本一区二区三区四区视频 | 亚洲精品美女久久久aaa | 日韩精品中文字幕久久 |