Java 关于可序列化事务的一些查询?

Java 关于可序列化事务的一些查询?,java,oracle,Java,Oracle,我已经读到,提交隔离可以提供比可序列化隔离级别多得多的并发性 我这里的问题是读提交隔离如何提供比序列化更多的并发性?。一个简短的场景会有很大的帮助 问题:-假设两个事务tran1和tran2在时间t1开始(当我说事务开始时,这里的意思是当它们触发一些查询时事务开始对吗?)。如果tran1在时间t2更新行1,之后在时间t3 tran2获取相同的行,它将不会由tran1完成更新的行。对吗?我这么说是因为tran1和tran2将显示时间t1时存在的数据状态的结果。正确吗?事务开始时是否拍摄完整数据库的

我已经读到,提交隔离可以提供比可序列化隔离级别多得多的并发性

我这里的问题是读提交隔离如何提供比序列化更多的并发性?。一个简短的场景会有很大的帮助

问题:-假设两个事务tran1和tran2在时间t1开始(当我说事务开始时,这里的意思是当它们触发一些查询时事务开始对吗?)。如果tran1在时间t2更新行1,之后在时间t3 tran2获取相同的行,它将不会由tran1完成更新的行。对吗?我这么说是因为tran1和tran2将显示时间t1时存在的数据状态的结果。正确吗?事务开始时是否拍摄完整数据库的快照?

我已经读到,编码可序列化事务需要应用程序开发人员进行额外的工作,以检查“Cannot serialize access”错误,并撤消和重试该事务不确定开发人员何时会出现“无法序列化访问”错误?我们是否会在下面的场景中得到相同的错误


假设两个事务tran1和tran2在时间t1开始。如果tran1在时间t2更新行1并提交,则tran2在时间t3更新并提交相同的行1。在这种情况下,它会抛出“无法序列化访问”错误吗如果是,oracle是否在可序列化事务的情况下在内部维护该版本,以便了解用户已更新了行?

请参阅关于隔离级别和数据并发的文档。

oracle实际上没有真正的可序列化事务。Oracle使用多版本并发控制,这意味着您可以在传统的面向锁的数据库中以很少的成本获得可序列化事务的大部分好处。不过,我对这方面的了解还不够,无法写出真正的答案,抱歉。
事务开始时是否会拍摄完整数据库的快照?
只要想想一个(相当中等大小)1GB的数据库和每分钟开始的1000个事务即可。你知道有一个每分钟可以拍摄1TB快照的盒子吗?@ypercube。同意它不会准确地拍摄快照。但它将是类似的东西。这就是我要寻找的?是的,你需要自己管理版本控制,我想你谈论的是如何处理并发性,请看:嗨,tbone,在经历了这个和其他各种艺术之后,我产生了这些疑问。如果你能对上面的内容有所了解,那将是非常有帮助的。