【问题标题】:what is the READ_COMMITTED locking strategy when concurrently operating with a READ_UNCOMMITTED transaction与 READ_UNCOMMITTED 事务同时操作时,READ_COMMITTED 锁定策略是什么
【发布时间】:2023-03-04 06:53:02
【问题描述】:

我们有两个事务,一个是 READ_COMMITTED,另一个是 READ_UNCOMMITTED。我们在 READ_COMMITTED 事务中遇到了锁异常。当另一个 READ_UNCOMMITTED 事务修改 READ_COMMITTED 尝试检索的记录时,会发生此异常。我的 READ_UNCOMMITTED 事务需要更多时间才能完成。根据隔离策略,READ_UNCOMMITTED 不会获取锁,READ_COMMITTED 会。

我的问题是

  1. READ_COMMITTED 遵循什么锁定策略。
  2. 它是否会从 READ_UNCOMMITTED 事务中获取对该未提交记录的锁定?或之前交易的已提交记录。

【问题讨论】:

  • 我们使用informix
  • 我需要更多信息来理解您的问题。您使用的是哪个版本的Informix?您能否提供一个简单的示例,其中包含您的 2 个交易尝试执行的虚拟表?

标签: informix isolation-level transaction-isolation


【解决方案1】:

已经readcommitted事务的会话会在很短的时间内拥有共享锁,一旦sql server读完,这个共享锁就会被释放。如果另一个具有读取未提交事务的会话同时尝试更新同一条记录,它将被阻塞很短的时间间隔,直到共享锁未被释放。

Read uncommitted transaction 读取的是未提交记录的脏记录,不发出共享锁。但是事务还是会发出排他锁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多