你的位置:首页 > 软件开发 > 数据库 > 数据库的读读事务也会产生死锁

数据库的读读事务也会产生死锁

发布时间:2015-08-24 11:00:15
数据库的读读事务也会产生死锁 前段时间有朋友问:SQL Server的AlwaysOn的辅助数据库默认会使用行版本快照控制来消除数据库上的读写事务阻塞和死锁问题即使用户显式为查询设置了其他事务隔离级别,所有锁提示(Lock Hint)都会被忽略。为了保证数据同步的完整性,Al ...

数据库的读读事务也会产生死锁

数据库的读读事务也会产生死锁

 

前段时间有朋友问:SQL Server的AlwaysOn的辅助数据库默认会使用行版本快照控制来消除数据库上的读写事务阻塞和死锁问题

即使用户显式为查询设置了其他事务隔离级别,所有锁提示(Lock Hint)都会被忽略。

为了保证数据同步的完整性,AlwaysOn规定来自数据同步(redo 日志)所做的写操作永远不会被选为死锁牺牲品,无论该写操作的代价多小。

 

AlwaysOn的做法其实很好理解,数据库中的事务操作无非就四种

1、读读 

2、读写

3、写读

4、写写

 

 

第二种、第三种和第四种造成阻塞和死锁很容易理解,读事务得到的锁资源不释放就有可能造成写事务失败或者写事务得到的锁资源不释放就有可能造成读事务

但是第一种读读事务也会造成死锁吗?

 

我这里做一个实验

1、先确保数据库没有使用任何快照隔离级别

USE [tt1]DBCC USEROPTIONS

原标题:数据库的读读事务也会产生死锁

关键词:数据库

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。