数据库管理-第224期 23ai:优先级事务-03(20240729)

数据库管理-第224期 23ai:优先级事务-03(20240729)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

因为之前的23c内测版没有优先级事务这一功能和23ai Free版本因为版本限制无法修改相关参数,耽搁了一段时间。但是上周末23.5 for Engineered Systems已经放出,可以通过一些方法安装数据库,因此这期开始继续实战优先级事务。

1 准备测试数据

create user test identified by test;
grant connect,resource to test;
alter user test default tablespace users quota unlimited on users;

conn test/test@127.0.0.1:1521/pdbprod1
create table test (id number primary key,name varchar2(20));
insert into test values (1,'yhw');
insert into test values (2,'sky');
insert into test values (3,'23ai');
commit;

image.png

2 设置参数

ALTER SYSTEM SET "priority_txns_mode"="ROLLBACK";
ALTER SYSTEM SET priority_txns_high_wait_target = 10;
ALTER SYSTEM SET priority_txns_medium_wait_target = 10;

3 实战测试

案例1

session 1:

ALTER SESSION SET "txn_priority" = "LOW";
update test set name='23c' where id=3;

session 2:

ALTER SESSION SET "txn_priority" = "MEDIUM";
set timing on
update test set name='23c-old' where id=3;

image.png
image.png
这里可以看到session 2等待约10s后执行成功,session 1仍可提交,但session 2提交后,session 1读取内容虽session 2提交内容变化。

案例2

重置环境:

update test set name='23ai' where id=3;
commit;

session 1:

ALTER SESSION SET "txn_priority" = "LOW";
update test set name='23c' where id=3;

session 2:

ALTER SESSION SET "txn_priority" = "MEDIUM";
set timing on
update test set name='23c-old' where id=3;

session 3:

ALTER SESSION SET "txn_priority" = "HIGH";
set timing on
update test set name='23ai-new' where id=3;

image.png
image.png
image.png
在这里看到拥有HIGH优先级的session 3等待了约10s就提交。session 2一直卡主,只能人工终止执行。session 1尝试commit时抛出与优先级事务相关的报错,再次DML操作时提示需要先rollback。

总结

本期对优先级事务进行了实操测试,演示并验证了相关特性。
老规矩,知道写了些啥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值