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

首頁 > 開發 > 綜合 > 正文

Transaction And Lock--使用資源鎖來控制并發

2024-07-21 02:50:26
字體:
來源:轉載
供稿:網友
Transaction And Lock--使用資源鎖來控制并發

寫過程序的朋友都知道,在多線程處理時,對于非線程安全的對象,需用使用鎖定特定對象(LOCK)的方法來保證串行操作。曾經有位開發詢問我,在SQL Server內部是否有類似的實現方法來控制某一操作不能并行,無知的我毫不猶豫地告訴他不可能,還把這當成一個笑話跟陳璟提起,陳桑默默告訴我,這個可以實現!!!

無知者無罪,但不能繼續無知下去,所以讓我們一起來學習下應用程序資源鎖吧

首先我們可以使用sp_getapplock來嘗試獲取一個程序資源鎖

DECLARE @result int;EXEC @result = sp_getapplock @Resource = 'Form1',                @LockMode = 'Exclusive',               @LockOwner ='session'SELECT @result

然后使用SP_LOCK來查看鎖

我們會發現有一個新的X鎖,鎖定資源為"0:[Form1]:(ae2e65ee)",如果我們開啟新會話再次運行

DECLARE @result int;EXEC @result = sp_getapplock @Resource = 'Form1',                @LockMode = 'Exclusive',               @LockOwner ='session'SELECT @result

發現該回話被阻塞,再次查看鎖情況

會發現新會話等待資源為"0:[Form1]:(ae2e65ee)"上的X鎖,直到會話53結束。

由此,我們便可以使用這個功能來實現與程序相似的功能

--========================================================

相關鏈接

MSDN sp_getapplock

MSDN sp_releaseapplock

使用sp_getapplock來確保某段SQL同時間只能有一個Session執行

--=======================================================

妹子


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 塘沽区| 沽源县| 阿坝县| 博白县| 陇西县| 乌兰察布市| 柏乡县| 黄山市| 泸州市| 盐城市| 阿拉善左旗| 叙永县| 乌兰县| 华安县| 固镇县| 聂荣县| 达拉特旗| 兖州市| 安西县| 土默特左旗| 克什克腾旗| 沧源| 泸溪县| 台山市| 乌什县| 报价| 来宾市| 桃园市| 昌邑市| 葵青区| 汤原县| 永胜县| 巍山| 观塘区| 玛沁县| 洛南县| 永城市| 密山市| 罗江县| 若尔盖县| 聊城市|