如何确定在 Linux 上运行的 11.5 DB2 实例的默认隔离级别?
我从这个 IBM 文档中看到有一个“特殊寄存器” ,但是我不是 DB2 专家,所以我不确定在哪里可以找到它,或者如何“查看”“特殊”寄存器的值。
我也看过这个,但我也没有运气了解如何从中获得当前的隔离。
如何确定在 Linux 上运行的 11.5 DB2 实例的默认隔离级别?
我从这个 IBM 文档中看到有一个“特殊寄存器” ,但是我不是 DB2 专家,所以我不确定在哪里可以找到它,或者如何“查看”“特殊”寄存器的值。
我也看过这个,但我也没有运气了解如何从中获得当前的隔离。
在 Db2 中,隔离级别是在语句或包(=预编译的语句组)级别指定的,而不是在数据库或实例级别指定的。如果没有明确指定为语句的一部分 (
...WITH <isolation level
) 或通过您发现的寄存器或通过其他方式,它将是CS
(游标稳定性)。CS 级别的行为由数据库配置参数控制。cur_commit
CURRENT ISOLATION
您可以通过发出 来查看寄存器的值VALUES CURRENT ISOLATION
,这将决定如何编译/准备此会话中的下一条语句。但是,如果您在同一会话中调用存储过程,则其中的语句可能会以 SP 创建时指定(有效)的隔离级别运行。您可以使用 来查看包缓存中每个语句的隔离级别
MON_GET_PKG_CACHE_STMT()
。您可以通过查看每个正在进行的事务的当前隔离级别
MON_GET_UNIT_OF_WORK()
。隔离级别。