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

首頁 > 開發 > 綜合 > 正文

mssql的holdlock鎖跟索引的關系

2024-07-21 02:50:30
字體:
來源:轉載
供稿:網友
mssql的holdlock鎖跟索引的關系

表鎖tablock是會給表所有數據附加共享鎖,但是只是當前語句有效,語句執行完畢,鎖釋放,而不會持續到事務結束,而tablockX表鎖是持續到事務結束的鎖

holdlock鎖,鎖定的范圍會根據where條件后是否是聚集索引來改變的

例如

begin tran select * from t1 with(holdlock)where id= 29waitfor delay '00:00:05' commit 

where條件的id是聚集索引,所以該語句只會給id為29的數據附加共享鎖,其他數據則不會,其他事務可以對id不等于29的其他數據進行update和delete操作

如果換成

begin tran select * from t1 with(holdlock)where colA= '29'waitfor delay '00:00:05' commit 

where條件的colA不是聚集索引,該查詢會導致表掃描,所以會給整個表數據附加共享鎖,并且持續到事務結束,其他事務只能讀該表數據而不能進行其他操作

以上結論在sqlserver2008測試的


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐边县| 丹寨县| 岗巴县| 武穴市| 穆棱市| 砀山县| 海盐县| 泰顺县| 尼玛县| 右玉县| 广昌县| 博客| 嘉荫县| 崇礼县| 乐亭县| 临洮县| 文昌市| 尤溪县| 尚志市| 昭苏县| 闵行区| 大港区| 轮台县| 定南县| 霍城县| 宁河县| 孝义市| 灵宝市| 巴中市| 和林格尔县| 临朐县| 县级市| 翁牛特旗| 霍邱县| 康保县| 高密市| 株洲市| 玛沁县| 高阳县| 建昌县| 临武县|