长事务的理解和预防

        我们常常听说数据库发生了“长事务”而导致很严重的后果。那么何为长事务?长事务是如何产生的?长事务对数据库有什么影响?如何防止长事务的产生?以下对这几方面进行阐述和说明,以加深对SinoDB长事务的理解。

1.什么是长事务

  长事务,顾名思义就是一个事务(transaction)执行了很长时间仍未结束。那么一个事务执行多长时间算是长事务?对于SinoDB数据库来说占用逻辑日志个数的百分比达到长事务高水位线就被定义为一个长事务。

2.事务的控制

  事务的开始和结束,以“begin”为开始,以“commit”或“rollback”结束。“commit”表明事务执行成功,对数据库所做的修改已经生效,“rollback”则说明事务执行失败,对数据库的所有操作均需要撤销,恢复到事务执行之前的状态。为了使事务能被撤销,数据库也必须对所有操作及被修改前的数据进行日志记录,以便撤销时能够执行逆向操作,将数据恢复到以前的状态。

3.对日志的使用和影响

  为了防止数据库因日志资源耗尽发生阻塞,SinoDB设置了长事务高水位线(LTXHWM)和独占的长事务高水位线(LTXEHWM),当一个事务占用日志个数的百分比达到长事务高水位线LTXHWM就被标识为一个长事务,并自动触发回滚操作,当百分比达到独占的长事务高水位线时,其它会话均进入阻塞状态,只进行长事务回滚操作。

4.长事务产生的几种原因

  在SinoDB数据库中,长事务现象发生的原因主要有:

1) 逻辑日志参数设置不合理,日志个数太少或长事务高水位线LTXHWM太低;

2) 数据库并发很高,事务的粒度太粗,长时间不能提交,最终触及长事务高水位线;

3) 事务启动后,未使用commit或rollback来终止事务;

4) 大表连接插入目标表,连接条件不正确产生笛卡尔集,结果集超出预期,长时间不能处理完成;

5) 使用临时表装载大量数据,未指定with no log子句,也未设置TEMPTAB_NOLOG参数。

5.如何避免长事务

  长事务带来的后果是严重的,虽然在长事务发生时可以通过手工添加逻辑日志方式来挽救,但是及时性难以保证。不过长事务也是可以避免的,具体可以从以下几点做起:

1) 根据并发用户数和业务量合理设置逻辑日志大小和个数,保证大部分事务能正常完成;

2) 适当调低长事务高水位线LTXHWM,确保在长事务发生时有足够的日志文件用于回滚;

3) 设置参数DYNAMIC_LOGS为2,当无可用日志文件时会自动增加,需要注意的是日志并不是在事务到达LTXHWM之后就开始增加;

4) 合理控制事务的颗粒度,将大事务分割为小事务进行多次提交批量处理,减少单个事务处理时间,提高逻辑日志资源利用率;

5) 事务操作闭环,事务开始之后必须结束,尽量避免回滚,减少对日志和锁的消耗;

6) 大表进行连接时,尽量保证连接条件唯一,避免产生笛卡尔集,避免产生事务日志;

7) 在创建临时表应加上with no log字句,或将数据库参数TEMPTAB_NOLOG指定为1。

更多信息内容请移步星瑞格官方社区,期待大家加入
Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-VBA函数之旅-super函数

目录 一、super函数的常见应用场景 二、super函数使用注意事项 三、如何用好super函数? 1、super函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://myelsa1024.blog.csdn.net/ 一、su…

AI代理和AgentOps生态系统的剖析

1、AI代理的构成:AI代理能够根据用户的一般性指令自行做出决策和采取行动。 主要包含四个部分: (1)大模型(LLM) (2)工具:如网络搜索、代码执行等 (3&#x…

开散列哈希桶

通过上面这幅图,读者应该能较为直观地理解何为开散列,以及闭散列与开散列的区别在哪里 —— 数据的存储形式不同,至于其他的,如确定每个元素的哈希地址等一概相同。 与闭散列相比,开散列能够更好地处理发生冲突的元素 …

Transformers 加速的一些常用技巧

Transformers 是一个强大的架构,但模型因其采用的自注意力机制,虽然能够有效地处理序列数据并捕获长距离依赖关系,但同时也容易导致在训练过程中出现OOM(Out of Memory,内存不足)或者达到GPU的运行时限制。…

AI大模型探索之路-训练篇22: ChatGLM3微调实战-从原理到应用的LoRA技术全解

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

MPLAB X IDE编译attiny1616工程报错却无报错信息

MPLAB X IDE(XC-8编译器)编译报错,无具体错误内容,仅显示需要xc-8 pro的警告。 内存占用率显示为81%,未超标。 原因:软件使用了microchip的bootloader功能。应用程序起始地址(也是bootloader结束地址)设置错…

社交巨头:探索Facebook的震撼力量

Facebook作为社交媒体领域的巨头,不仅在数字化社会中占据着重要地位,更是影响了人们的生活、工作和社交方式。本文将深入探索Facebook的震撼力量,从多个角度解读其在当今社会中的重要性和影响。 1. 全球用户覆盖的壮观规模 Facebook作为全球…

docker安装时报错:Error: Nothing to do

安装docker时报以下错误 解决方法: 1.下载关于docker的相关依赖环境 yum -y install yum-utils device-mapper-persistent-data lvm22.设置下载Docker的镜像源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3…

FMEA存在的五个主要不足及改进措施——FMEA软件

免费试用FMEA软件-免费版-SunFMEA 在制造业和产品设计领域,失效模式与影响分析(Failure Modes and Effects Analysis,简称FMEA)被广泛运用,用于预防潜在的设计或制造缺陷。然而,尽管FMEA在风险管理方面发挥…

开发者集结号:大湾区 Open Source Day 邀您共探技术前沿

开源技术正以其开放、协作的特性,引领着软件开发的新潮流,是推动社会进步的重要力量。作为开发者,您是否渴望深入了解开源项目的前沿动态?由ALC深圳与2024中国互联网发展创新与投资大赛联合举办、FISCO金链盟深度参与的大湾区 Ope…

MySQL————创建存储过程函数

存储过程使用大纲 有参数传递 delimiter $$ 声明一个名称为get_student_introduce create procedure add_student_infor( in p_userName VARCHAR(20),in p_phone VARCHAR(11),in p_sex char(2),in p_introduce VARCHAR(255)) 开始操作 BEGIN 撰写真正在操作DMLDQL都行 INSE…

CSS---复合选择器、元素显示模式和背景(三)

一、CSS的复合选择器 1.1 什么是复合选择器 在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 复合选择器是由两个或多个基础选择器连写组成,它…

【云原生】kubernetes核心组件

引言: Kubernetes 是为运行分布式集群而建立的,分布式系统的本质使得网络成为 Kubernetes 的核心和必要组成部分,了解 Kubernetes 网络模型可以使你能够正确运行、监控和排查应用程序故障。 一、Kubernetes的核心组件 1.1、Master组件 1.1.…

基于Springboot+Vue的Java项目-农产品直卖平台系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

可道云teamOS企业网盘实用插件介绍:实时在线流程图编辑与分享,用在线流程图打造数字化工作流程

在使用企业网盘用于日常办公的情况下,有一些实用的在线小工具能为团队效率和协作带来一定的提升。 今天要给大家介绍的可道云teamOS的在线画流程图,是很值得介绍的一个在线工具。 在线流程图:直观展示,高效便捷 以往我们想要梳理…

FANUC机器人单轴零点标定时提示无法执行零点标定,由于重力补偿已启用,所有机器人轴的脉冲计数必须有效

FANUC机器人单轴零点标定时提示无法执行零点标定,由于重力补偿已启用,所有机器人轴的脉冲计数必须有效 首先,机器人由于长时间断电未使用,6个轴的编码器数据全部丢失,上电后报警SRVO-062, 有关SRVO-062故障报警的相关内容可参考以下链接: FANUC机器人SRVO-062报警原因分…

Scratch四级:第08讲 排序算法

第08讲 排序算法 教练:老马的程序人生 微信:ProgrammingAssistant 博客:https://lsgogroup.blog.csdn.net/ 讲课目录 常考的排序算法项目制作:“三个数排序”项目制作:“成绩查询”项目制作:“排序”项目制…

单片机智能灯控制系统源程序仿真原理图与论文全套资料

目录 1、设计描述 2、仿真图 3、程序 4、资料内容 资料下载地址:单片机智能灯控制系统源程序仿真原理图与论文全套资料下载 1、设计描述 设计了一款智能控制系统。 AT89C51LCD1602DS1302按键LED组成了这样一个完整的设计。 P2.0-P2.3 4个LED等代表庭院内的4…

架构设计之学新而知故

缘由 因为一些特殊的机缘,接触到洋葱架构等一些新架构设计概念。 尝试理解了一段时间,就想简单梳理下对它们的理解,以达到学新而知故 😃 信息增益 以前计算机专业并不设置通信领域的信息论的专业课程,但是&#xf…

英语复习之英语形近词总结(四)

英语形近词总结复习第四部分: 单词 释义例句 genuine 英 /ˈdʒenjuɪn/ 美 /ˈdʒenjuɪn/ adj.真实的,真正的;诚恳的 1.Only genuine refugees can apply for asylum. 只有真正的难民才能申请政治避难。 《牛津词典》 2.This isnt a genui…