因此,假设我使用可序列化隔离级别启动了一个事务,那么Oracle默认情况下会在该事务中列出的所有表上获取某种类型的"Table“锁,如果是,那么它是什么?将根据事务中存在的特定SQL语句获取锁,而不是基于事务隔离级别是否已被读取、提交或可序列化,因此,如果存在DML,则将获取只读表锁(RX),如果有类似于LOCK TABLE table IN EXCLUSIVE--请注意,这个问题非常特定于,然后非常具体地
当执行并发MERGE时,当每个会话对主键列id使用不同的值(在下面的片段中作为*显示为*)时,如果我在两个终端会话中手动执行,一切都很好。UPDATE SET val = val + 1 WHERE id = ***COMMIT;
但是,在使用(为什么它是不确定的,因为它并不总是发生在事务重叠的时候?)这是因为可能合并不是原子的optimistically,,而可序列化模式