默认事务隔离级别(def_iso_level)
📄字数 452
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
默认事务隔离级别。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | INTEGER |
| 默认值 | 1 |
| 取值范围 | {0,1,2,3} |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 若连接会话未显式指定会话参数 iso_level,则使用该参数值作为连接上事务隔离级别的默认值。
- 数据库事务隔离级别是为了在并发事务执行时,控制事务之间的可见性和影响,从而避免数据不一致的问题。不同的隔离级别解决了不同类型的并发问题,同时也带来了性能和一致性上的权衡。
| def_iso_level | 事务隔离级别 | 存在的问题 |
|---|---|---|
| 0 | 只读 | 无法修改数据。 |
| 1 | 读已提交 | 不可重复读和幻读。 |
| 2 | 重复读 | 幻读。 |
| 3 | 序列化 | 由于事务强制串行执行,导致并发性大大降低,系统吞吐量下降。 |
注意
- 会话参数 iso_level 的优先级高于系统参数 def_iso_level。
示例
sql
-- 在线修改 def_iso_level
SQL> SET def_iso_level TO 1;
-- 在线查看 def_iso_level
SQL> SHOW def_iso_level;