当前位置: 首页 > news >正文

简洁企业网站模板卖水果网站模板

简洁企业网站模板,卖水果网站模板,tq网站建设,海口网站建设平台1 业务背景自治事务(Autonomous Transactions)是一种高级特性,允许你在一个事务中执行另一个独立的事务。这种机制特别有用,尤其是在需要在一个事务中执行多个操作但又不想因为其中一个操作失败而影响整个事务的场景。2 业务影响在…

1 业务背景

自治事务(Autonomous Transactions)是一种高级特性,允许你在一个事务中执行另一个独立的事务。这种机制特别有用,尤其是在需要在一个事务中执行多个操作但又不想因为其中一个操作失败而影响整个事务的场景。

2 业务影响

在业务触发情况下,自治事务数会达到瓶劲,GaussDB默认为10个。

如:

3 处理方法

将max_concurrent_autonomous_transaction值按照应用开启的并发数设置,比较开启16个并发,那么这个参数要比这个值大,建议值20~30左右。

默认值:

gaussdb=>
gaussdb=>
gaussdb=> show max_concurrent_autonomous_transactions;max_concurrent_autonomous_transactions
----------------------------------------10
(1 row)gaussdb=>

如将max_concurrent_autonomous_transactions值改为20

gs_guc set -Z datanode -I all -N all -c "max_concurrent_autonomous_transactions='20'";
The gs_guc run with the following arguments: [gs_guc -Z datanode -I all -N all -c max_concurrent_autonomous_transactions=10 set ].
Begin to perform the total nodes: 3.
Popen count is 3, Popen success count is 3, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 3, Command success count is 3, Command failure count is 0.
Total instances: 3. Failed instances: 0.
ALL: Success to perform gs_guc![Ruby@dtest1 ~]$ cm_ctl stop && cm_ctl start
gaussdb=>  show max_concurrent_autonomous_transactions;max_concurrent_autonomous_transactions
----------------------------------------20
(1 row)

注: max_concurrent_autonomous_transactions参数的修改需要重启服务。

4 普及自治事务

针对这个问题一起普及自治事务知识点:

1)自治事务用法:

PRAGMA AUTONOMOUS_TRANSACTION,以改标识符表明该存储过程里面包含有自治事务。且必须放在声明部分,即“begin”前面

2)与oracle主要区别

在存储过程中,GaussDB的自治事务“递交”动作 commit无需显式指定,“回退”动作rollback 则需要指定,但在oracle数据库,自治事务递交与回退操作都需要显式指定。GaussDB数据库自治事务支持以下场景:存储过程,函数,匿名块,不支持在触发器中使用。oracle数据库,自治事务支持存储过程,函数,匿名块,以及触发器。

例:以下是显式加了rollback回退,如果不加commit情况下,默认提交。

csdn=> create or replace procedure autonomous_4(a int, b int) as
csdn$> declare
csdn$> num3 int :=a;
csdn$> num4 int :=b;>
csdn$> PRAGMA AUTONOMOUS_TRANSACTION;
csdn$> BEGIN
csdn$> INSERT INTO t2 values(num3,num4);
csdn$> rollback;
csdn$> dbe_output.print_line('just use call.');
csdn$> end;
csdn$> /
CREATE PROCEDURE
csdn=>  call autonomous_4(300,700);
just use call.autonomous_4
--------------(1 row)csdn=> select * from t2;a  |  b
-----+-----1 |   2200 | 500
(2 rows)

5 自治事务约束

  • 自治事务执行时,将会在后台启动自治事务session,可以通过max_concurrent_autonomous_transactions设置自治事务执行的最大并行数量,取值范围:0~10000,默认值:10。
  • 当max_concurrent_autonomous_transactions参数设置为0时,自治事务将无法执行。
  • 自治事务新启session后,将使用默认session参数,不共享主session下对象(包括session级别变量、本地临时变量、全局临时表的数据等)。
  • 自治事务理论上限为10000,实际上限为动态值,参考GUC参数max_concurrent_autonomous_transactions描述。
  • 自治事务受通信缓冲区影响,返回给客户端的信息大小受限于通信缓冲区长度,超过通信缓冲区长度时报错。
  • 自治事务执行期间,主事务会给自治事务加锁,异常情况导致此锁残留的场景下,需要依赖gs_clean清理残留锁,清理周期由GUC参数 gs_clean_timeout控制,默认值为60秒。自治事务的锁不受lock timeout影响,锁超时时间为2147483s,自治事务执行超过此时间会报错锁超时。
  • 自治事务设置建立连接超时时间5s,建立连接尝试5次。建立连接期间不立即响应信号,每次建立连接前检查信号。高并发、高CPU、高内存,以及线程池扩容场景下可能存在超时报错现象。
  • 在PACKAGE SPECIFICATION或PACKAGE BODY SPECIFICATION中声明自治事务PRAGMA AUTONOMOUS_TRANSACTION语法,可成功创建PACKAGE,但自治事务不生效。
  • 触发器函数不支持自治事务。

6 批注

自治事务也有优点:1.隔离性:自治事务允许你在一个事务中处理多个操作,这些操作可以独立地成功或失败,互不影响。2.灵活性:适用于复杂的业务逻辑,其中某些操作的成功或失败不应影响其他操作。3.在某些情况下,可以减少锁的竞争,提高并发性能。

 

http://www.dtcms.com/a/557022.html

相关文章:

  • Nginx缓存机制优化:FastCGI缓存与浏览器缓存
  • 襄阳万家灯火网站建设爱用建站平台
  • 3.2.2.SpringMVC简介
  • 帝国cms影视网站模板网站app的区别
  • Rust 结构体方法(Methods):为数据附加行为
  • Android Cursor AI代码编辑器
  • git add 一条命令太长换行
  • 数据仓库与传统数据库开发工具架构差异:Web 架构 vs 客户端工具
  • 百度网站快速排名公司营销策略ppt模板
  • 外骨骼机器人:下肢助力走路,减负 30% 的硬核机械魔法
  • Linux基础I/O-打开新世界的大门:文件描述符的“分身术”与高级重定向
  • 用Python来学微积分25-微积分中的函数奥秘:单调性、极值与最值
  • 免费信息网站排名做动画视频的网站有哪些
  • 从零搭建多子网 DHCP 服务:CentOS 双网卡多作用域实战与原理解析
  • 再议c语言的直接访问和间接访问
  • 从零开始的QT开发指南:(一)背景、特性与环境搭建
  • 网站购物车实现wordpress怎么调用分类的文章
  • oracle 19c搭建dataguard(ADG)全过程
  • 网站集群建设方案兰州免费网站建设
  • 低成本低成本低成本
  • 机器学习核心概念详解(回归、分类和聚类)
  • 基于SpringBoot+Vue的零食仓库管理系统(redis缓存、摄像头、扫描二维码)
  • ant design 做网站wordpress 上传文件名
  • 跨网络互联技术(加密算法)
  • uniapp/flutter中实现苹果IOS 26 毛玻璃效果、跟随滑动放大动画
  • I.MX6U 启动方式详解
  • flutter 生命周期管理:从 Widget 到 State 的完整解析
  • Python Selenium详解:从入门到实战,Web自动化的“瑞士军刀”
  • 正品海外购网站有哪些郑州网络推广软件
  • 腾讯网站开发规范加强档案网站建设