介绍
这篇文章主要介绍了如何实现锁不住的查询,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
使用主; 去 如果@@TRANCOUNT比;0 回滚TRAN; 去 ——=======================================⒉馐允菘? ——一个。删除测试库,如果已经存在的话 如果DB_ID (n # 39; db_xlock_test& # 39;)不是零 开始; 改变数据库db_xlock_test 设置SINGLE_USER 与 回滚后0; 减少数据库db_xlock_test; 结束; ——b。建立测试数据库 创建数据库db_xlock_test; - - - c。关闭READ_COMMITTED_SNAPSHOT以保持选择的默认加锁模式 改变数据库db_xlock_test 设置READ_COMMITTED_SNAPSHOT; 去 ——=======================================⒉馐员? 使用db_xlock_test; 去 创建表dbo.tb ( int id身份 主键, 名字sysname ); 插入dbo.tb 选择最高(50000) O1.name + n # 39;强生# 39;+ O2.name + n # 39;强生# 39;+ O3.name 从系统。O1和对象(NOLOCK), sys。对象O2 (NOLOCK), sys。O3与对象(NOLOCK); 以前去>
——=======================================馐粤? -加锁 开始TRAN ——测试的初衷是通过选择加锁,结果发现更新也锁不住 dbo更新。结核病组名称=名称 从dbo - SELECT COUNT (*)。结核病(XLOCK) 在id & lt;=2; 选择 spid=@@SPID, tran_count=@@TRANCOUNT, database_name=DB_NAME (), object_id=object_id (n # 39; dbo.tb& # 39; n # 39;表# 39;); ——显示锁 EXEC sp_lock@@SPID;
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
- - -=======================================馐粤? -被阻塞(在测试连接1执行后执行) 设置事务隔离级别读取提交; SELECT * FROM dbo.tb id & lt;=2,
<强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
强> <强> 强> <强> 强>
<强> 强>
<强> 强>
<强> 强>
<强> 强>
感谢你能够认真阅读完这篇文章,希望小编分享如何实现锁不住的查询内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!
数据库如何实现锁不住的查询