在本博客中,我们将对如何在HANA中实现死锁进行一个小测试。
多版本并发控制确保了一致的读取操作。但是,物联网是什么,它并不阻止对相同数据的并发写操作以及相关的不一致(脏写、丢失更新)。为了防止对同一数据记录执行并发写操作,SAP HANA数据库在行级别使用独占写锁。对于每个写访问,智能工厂解决方案,都会获得一个行级写锁。需要写入同一记录的并发事务必须等待锁被释放。在执行更新或删除操作之前,隐式请求写锁。
如果两个事务都需要更新两条记录R1和R2,并且一个事务被赋予R1锁,另一个事务被赋予R2锁,则会发生死锁情况。事务管理器检测到死锁并中止其中一个事务。
在下面的测试中,物联网大会,我创建了两个存储过程P1和P2。P1和P2都需要更新一个表中的所有条目(10000个条目)。P1将表从最后一个条目更新为第一个条目。P2将表从第一个条目更新到最后一个条目。P1和P2将同时执行。其中一个过程将因死锁错误而中止。
执行事务P1
然后立即在另一个SQL控制台会话中执行事务P2
这里事务P2因检测到错误死锁而中止。
死锁是指两个或多个事务各自锁定的情况其他交叉的,这样就没有交易能够继续进行。死锁通常是由应用程序设计引起的。
如果SAP HANA基于事务锁识别死锁,淘客模板,其中一个事务将被终止,并发出以下错误:
此行为与Oracle等其他数据库不同,后者死锁只会终止当前DML操作,而不会终止整个事务。
,产业云本文地址: /cunchu/76733.html
版权声明:本文发布于收集站云 内容均来源于互联网 如有侵权联系删除