文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>悲观锁和事务处理并发冲突

悲观锁和事务处理并发冲突

时间:2010-10-26  来源:zyip

BEGIN TRANSACTION;
GO
    select *  from SK_Product WITH(HOLDLOCK)  where ProId=47;
    WAITFOR DELAY '00:00:30';
    select *  from SK_Product where ProId=47;
GO
COMMIT TRANSACTION;

 

2.在一个新的查询窗口运行以下代码

 

UPDATE [Laptop].[dbo].[SK_Product]
   SET [ProName] = [ProName]+ '   12'
 WHERE ProId=47
GO
select *  from SK_Product where ProId=47;

 观察结果 发现第一个窗口中的两条select显示的数据都是未修改前的数据,第二个窗口在等待第一个窗口中的代码执行完后才得以执行,第二个窗口中的select显示的是修改后的数据

 

 这种方式时间上是限制并发,因为其独占性造成请求必须按先后顺序执行 ,效率比较低下。

 

 3.两个锁定区别
SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 
SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除

4.
 执行 EXEC SP_LOCK 报告有关锁的信息

 查询分析器中按Ctrl+2可以看到锁的信息


5.何锁一个表的某一行 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
SELECT * FROM table ROWLOCK WHERE id = 1 
 

相关阅读 更多 +
排行榜 更多 +
盒子小镇2游戏手机版下载

盒子小镇2游戏手机版下载

冒险解谜 下载
世界盒子模组版下载最新版本

世界盒子模组版下载最新版本

模拟经营 下载
音乐搜索app最新版本下载

音乐搜索app最新版本下载

趣味娱乐 下载