事务隔离级别,为什么SQLSERVER 容易锁表

Posted 主的羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务隔离级别,为什么SQLSERVER 容易锁表相关的知识,希望对你有一定的参考价值。

 在Oracle中,读取操作不会阻碍更新操作,更新操作也不会阻碍读取操作,这样在Oracle中的各种隔离级别下,读取操作都不会等待更新事务结束,更新操作也不会因为另一个事务中的读取操作而发生等待,这也是Oracle事务处理的一个优势所在。
oracle支持Read Committed和Serializable级别,默认的隔离级别是Read committed,在oracle中隔离级别实现如下:
Read Committed隔离级别(也称为语句级别的隔离)
如果一个事务正在对某个表进行DML操作,而这时另外一个会话对这个表的记录进 行读取操作,则Oracle会去读取回滚段或撤销段中存放的更新之前的记录,而不会象SQL Server一样等待更新事务的结束。
Serializable隔离级别(也称为事务级别的隔离)
事务中的读取操作只能读取这个事务开始之前已经提交的数据结果。如果在读取时, 其他事务正在对记录进行修改,则Oracle就会在回滚段或撤销段中去寻找对应的原来未经更改的记录(而且是在读取操作所在的事务开始之前存放于回滚段或 撤销段的记录),这时读取操作也不会因为相应记录被更新而等待。
————————————————
版权声明:本文为CSDN博主「ClementQL」的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CQL_K21/java/article/details/88621615

以上是关于事务隔离级别,为什么SQLSERVER 容易锁表的主要内容,如果未能解决你的问题,请参考以下文章

.net的sqlserver事务里,delete语句如何只锁行,不锁表

SQL事务的四种隔离级别

事务的四种隔离级别和七种传播行为

平时使用oracle时,为啥会锁表

sqlserver跳过锁表等待

MYSQL性能调优08_事务及其ACID属性脏读不可重复读幻读隔离级别行锁表锁读锁写锁间隙锁临键锁