在firebird中插入块选择吗?

问题描述 投票:0回答:1

我们正在 firebird 上运行一些测试。当我们插入时,我们注意到如果我们打开第二个会话,该会话就会挂起。因此插入似乎会阻止选择。

是否有某种选项可以启用并发。或者插入、更新、删除会阻塞整个表吗?

选择也会阻止其他会话选择吗?

firebird
1个回答
0
投票

一般来说,不会,插入不会阻止 Firebird 中的写入器。然而,实际上这取决于所涉及交易的配置。

例如,当您使用具有

READ COMMITTED NO RECORD_VERSION
的事务时,如果从另一个事务读取具有未提交版本的记录,则可能会发生以下两种情况之一:

  1. 如果配置了

    WAIT
    事务,它将阻塞,直到该记录的待处理事务被提交或回滚。

    如果事务设置了

    LOCK TIMEOUT
    ,如果在超时到期之前没有发生这种情况,则选择将以错误结束。

  2. 如果配置了

    NO WAIT
    事务,它将立即结束选择并出现错误。

请注意,自 Firebird 4.0 起,如果设置

[NO] RECORD_VERSION
设置为
ReadConsistency
(默认值!),则忽略
1
选项,而是应用
READ COMMITTED READ CONSISTENCY

© www.soinside.com 2019 - 2024. All rights reserved.