一区二区久久-一区二区三区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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲香蕉网综合久久 | 国产福利在线 | 国产精品麻豆一区二区三区 | 精品99久久 | 久久亚洲成a人片 | 男人女人无遮掩免费视频 | 久久99精品久久久久久久不卡 | 天天天天色 | 国产区精品福利在线观看精品 | 美女一级毛片免费看看 | 小说区图片区综合久久88 | 国产天堂视频 | 欧美精品国产第一区二区 | 久久精品中文 | 欧美一级特黄aaa大片 | 一区二区在线视频 | 97人人超人超人国产第一页 | 国产视频高清在线 | 国产精品高清全国免费观看 | 精品国产香蕉在线播出 | 亚洲人成绝费网站色ww | 黄大色大片免费久久 | 男女男精品视频网站 | 中文字幕免费在线视频 | 国产高清国内精品福利色噜噜 | 国产在线观看福利 | 黄网站视频观看免费 | 午夜视频91 | 午夜激情免费视频 | 色啊色| 国产三级网站在线观看 | 激情中文网| 91av福利视频| 日韩免费视频在线观看 | 国产精品极品美女自在线 | 天天色一色 | 国产第一夜 | 美女网站色免费 | 欧美一级艳片爽快片 | 激情文学图片 | 日本一区二区三区在线 视频观看免费 |