南大通用GBase8s 常用SQL语句(262)

隔离级别的影响

您不可在没有日志记录的数据库中设置事务隔离级别。在这样的数据库中发生的每次检索都作为 Dirty Read。

从 BYTE 或 TEXT 列检索的数据可有所不同,这依赖于事务隔离级别。在 Dirty Read 或 Committed Read 隔离级别之下,进程可读取或被删除的(如果该删除尚未提交的话)或在正被删除的进程之中的 BYTE 或 TEXT 列。在这些隔离级别之下,在某些情况下,被删除的数据是可读的。要获取更过关于这些情况的信息,请参阅 GBase 8s 管理员指南

当您使用 DB-Access 时,由于您使用更高的隔离级别,所以锁冲突发生得更频繁。例如,如果您使用 Cursor Stability,则与您使用 Committed Read 相比,会发生更多的锁冲突。

在 GBase 8s ESQL/C 事务中使用滚动游标,或通过将级别设置为 Repeatable Read,或通过在事务期间锁定整个表,您可在您的临时表与数据库表之间强制一致性。

如果您在事务中使用滚动游标 WITH HOLD,则您不可在您的临时表与数据库表之间强制一致性。当事务完成时,释放表级锁或通过 Repeatable Read 设置的锁,但处于保持状态的滚动游标在事务结束之外仍保持打开。事务一结束,您就可修改释放了的行,但在临时表中的被检索的数据可能与实际数据不一致。

注意: 请不要在事务内使用无日志记录的表。如果您需要在事务内使用无日志记录的表,则或者将隔离级别设置为 Repeatable Read,或者以 Exclusive 模式锁定该表来防止并发问题。

辅助数据复制服务器的隔离级别

如果禁用 UPDATABLE_SECONDARY 配置参数(通过未设置或通过设置为零),则辅助数据复制服务器为只读。在此情况下,在“高可用性数据复制”(HDR)和远程独立辅助(RSS)服务器上仅 Dirty Read 或 Read Uncommitted 事务隔离级别是可用的。

如果启用 UPDATABLE_SECONDARY 参数(通过设置为一个大于零的有效的连接数),则辅助数据复制服务器可支持 Read Committed、Committed Read 或 Committed Read Last Committed 事务隔离级别,带有或不带 SET ENVIRONMENT 语句的 USELASTCOMMITTED 会话环境变量。仅 SQL 的 DELETE、INSERT、UPDATE 和 MERGE 语句(以及 dbexport 实用程序,如果设置 STOP_APPLY、USELASTCOMMITTED 和 UPDATABLE_SECONDARY 配置参数的话)可支持在可更新的辅助服务器上的写操作。

然而,“共享磁盘辅助”(SDS)服务器可支持 Read Committed、Committed Read、Committed Read Last Committed 隔离级别,不管他们的 UPDATABLE_SECONDARY 设置。要获取更多关于 UPDATABLE_SECONDARY 配置参数的信息,请参阅 GBase 8s “管理员参考手册”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值