国产探花免费观看_亚洲丰满少妇自慰呻吟_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執行

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

妹子


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南郑县| 安西县| 山阴县| 定南县| 浪卡子县| 康保县| 马公市| 大庆市| 登封市| 尖扎县| 江阴市| 耒阳市| 搜索| 屯门区| 柏乡县| 南开区| 辽源市| 永年县| 轮台县| 乐业县| 孝感市| 涞水县| 拉孜县| 宿迁市| 板桥市| 丰台区| 石家庄市| 枞阳县| 荆门市| 株洲市| 灌云县| 沅江市| 密山市| 宜兰市| 湛江市| 大关县| 邮箱| 布尔津县| 兴宁市| 鱼台县| 马尔康县|