SQLServer 事务超时测试

2016-9-26 16:13:45 @hury

SQLServer 事务超时测试

1.当前查询超时设置

exec sp_configure 'query wait (s)' 

这里写图片描述

2.超时测试

打开第1个窗口

-- 建立临时表
CREATE TABLE t(id int);
-- 开启事务
BEGIN TRANSACTION
-- 写入测试数据
INSERT INTO t values(1);

打开第2个窗口

-- 设定死锁超时(3秒)
SET lock_timeout  3000;
SELECT @@lock_timeout;
-- 执行查询
SELECT * FROM t;

这里写图片描述

打开第3个窗口:

-- 查看锁等待情况
SELECT * FROM sys.dm_os_waiting_tasks;
-- 手工杀死会话 session_id
-- 如果手工杀死会话,则第1个窗口将失去连接
KILL 258

-- 如果将第1个窗口事务提交,则第2窗口事务可以执行完成
-- 或者等待锁超时时间

-- 返回第1个窗口,提交事务
COMMIT;

小结:

1、通过 sp_configure 设置的查询超时 query wait (s)’,是指当没有足够的内存运行查询时,大量占用内存的查询将排队等待。
与 db2 中的 死锁超时概念不同。

2、使用 set lock_timeout 指定语句等待锁释放的毫秒数。
此设置仅对当前会话有效,非全局设置

后续有时间,将oracle和db2的锁超时测试补充进来。

参考:

http://blog.csdn.net/u013419838/article/details/46634449

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值