update语句的执行步骤及commit语句的执行顺序

Update Task 里的禁用语句:为什么一行 COMMIT WORK 足以让整个过账崩盘 SAP ABAP Update Task 禁用语句详解 在 SAP ABAP 开发中,CALL FUNCTION...IN UPDATE TASK 是确保事务一致性的关键机制。然而,Update Task 中执行某些语句会导致运行时错误,如 COMMIT_IN_POSTING 或 POSTING_ILLEGAL_STATEMENT,因为这些操作会破坏事务边界或更新控制器的调度秩序。本文总结了 Update Task 中绝对禁止的语句类型,包括显式提交/回滚、隐式提交操作(如屏幕调用、事务跳转)以及 Nati 阅读详情

update语句的执行步骤和其他DML语句的执行步骤是一样的包含insert 、delete语句等,执行步骤如下:

一、如果数据和回滚数据不在数据库高速缓存区中,则oracle服务器进程将把他们从数据文件中读取到数据库高速缓存区中。

二、oracle服务器进程在要修改的数据行上加锁(行一级的锁)

三、oracle服务器进程将数据的变化信息和回滚段所需要的信息都记录在重做日志缓冲区中

四、oracle服务器进程将回滚所需的原始值和对数据所做的修改都写入数据库高速缓冲区。之后在数据库高速缓存区中所有的这些数据块都将被标记为脏缓冲区,因为此时内外存的数据是不一致的。

五、然后由DBWR后台进程负责将数据库高速缓存区中的脏缓存区中的数据写到数据文件中,实现内外存的数据一致。至于DBWR后台进程的执行时间点是有oracle系统的设置所决定的,包含在一下情况时触发DBWR进程执行数据的写入。

   (1)缓冲区的数量超过了所设定的限额

   (2)所设定的时间间隔已到

   (3)当有进程需要高速缓存区,但是此时又没有空闲的高速缓存区时。

   (4)当校验点发生时

   (5)当某个表被删除drop或者被截断truncate时

   (6)当某个表空间被设置为只读状态时

   (7)当使用类似alter tablespace users begin backup的命令对表空间进行联机备份时

   (8)当某个临时表空间被设置为只脱机状态或正常状态时

 

commit语句的执行顺序:

一、服务器进程将提交的记录连同产生的SCN码一起写到重做日志缓存区中

二、LGWR进程将把重做日志缓存区中一直到所提交的记录的所有记录连续的写到重做日志文件中。在此之后,oracle服务器就可以保证即使在系统崩溃的情况下所有提交的数据也可以得到恢复

三、oracle通知用户进程提交操作已经完成

四、服务器进程将修改数据库高速缓存区中的相关数据的状态并释放资源和打开锁(实际上就是修改数据库高速缓存区中的脏缓存区)

此时这些数据可能并没有写入数据文件中,这些数据缓存区被标记为脏缓存区。高速缓存区中 的数据由DBWR进程写入数据文件中。

LGWR进程在下列情况下将重做日志缓存区中的数据写入重做日志文件:

(1)当某个事务被提交时

(2)当重做日志缓存区中的变化的记录超过1M时

(3)当缓存区的容量超过1/3时

(4)在DBWR进程将数据库高速缓存去中修改过的数据块写入数据文件之前

(5)每3秒钟

注:从LGWR进程的触发事件看,LGWR进程的执行一定在DBWR进程的执行之前,这样才能保证数据恢复的完整性。

 

 

 

高薪程序员&面试题精讲系列81之说一下SQL查询语句的执行顺序详解-作用篇(上) 一. 面试题及剖析 1. 今日面试题 说一下SQL查询语句的执行顺序; 说说SELECT查询语句中都有哪些关键字? SELECT查询语句的解析执行原理是怎么样的? 你知道MySQL的架构逻辑吗? 2. 题目剖析 壹哥今天会给大家讲解一个很重要,也很常问的面试题,而且该面试题中所涉及的知识,也与我们日常SQL语句的编写有着莫大的关系,这个问题就是关于SQL语句的执行顺序!我们知道,SQL语句中最复杂的肯定是查询语句,其他的增删改创建授权等语句,基本没有太大的难度,所以本文主要分析SQL查询语 阅读详情

相关推荐

把 COMMIT WORK 讲透:从 SAP LUW、Update Task 到 RAP 里的禁区与工程化最佳实践

ABAP中的COMMIT WORK语句远不止简单的数据库提交,它涉及SAP LUW、数据库事务和Update Task的复杂交互机制。本文深入剖析其工作原理,包括:触发Update Task执行(VB1/VB2优先级队列)、处理锁释放规则、关闭数据库游标等关键动作;指出常见陷阱如Update Function Module中的硬限制、游标读取场景的风险;并分析特殊调用场景(BDC、CALL TRANSACTION)下的异常行为。通过结合S/4HANA、RAP等实际案例,帮助开发者正确理解和使用这一关键语句,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1830

执行update语句后要commit才能生效

今天在学习oracle视频时,自己动手做了如下操作; 1.在SQL Window中执行语句update emp set sal='10000' where ename='SMITH',更新成功后,执行查询emp表语句,发现更新成功 2.在Command window中再次执行查询emp表语句,发现结果与步骤1中不一致 问题在于;步骤1中执行完update语句,没有点击commit图标进行提交

xiaofuruo的专栏 2万+

双模音频解码器设计:USB+蓝牙LDAC平衡输出方案

音频解码器是数字音频系统中实现数模转换的核心组件,其性能直接决定音质保真度与系统延迟。基于高集成SoC的解码方案通过统一时钟域与片内DSP处理,有效抑制Jitter并简化硬件拓扑;结合全平衡模拟输出架构,可显著提升共模抑制比(CMRR)与信噪比(SNR)。该技术路径广泛应用于便携式Hi-Res音频设备、USB-C小尾巴DAC及蓝牙高解析耳机放大器等场景。本文围绕ES9038Q2M双模SoC展开,详解其在LDAC协议支持、UAC2.0兼容性及平衡电流型DAC输出方面的工程实现,为高性能、可量产音频硬件开发提供

weixin_42613018的博客 388

oracle在update、delete、和inset操作后,要commit操作

原来是因为我执行命令后没有commit提交,那么更新的内容只是被保存到内存中,而不是提交到数据库中,将不会被其他Session(对话)看到,其他对话看到的是更新前的数据。在oracle中使用sql语句执行了delete和update和insert命令,在本地数据库中已执行成功查看并没有删除成功或更新数据库,很是尴尬,为什么会出现这种不一致的情况呢?执行完DML语句,若没有commit再执行DDL语句,也会自动commit未被commit的数据。DQL(数据查询语言)- Select查询语句不存在提交问题。

wushijuewu 5369

基于Simulink/Matlab的VSG并网系统单相接地与相间短路故障仿真建模与特性分析

本文详细介绍了基于Simulink/Matlab搭建虚拟同步发电机(VSG)并网系统仿真模型的方法,并重点分析了单相接地与相间短路故障下的系统特性。通过设置三相故障模块参数,模拟了故障发生时的电压、电流变化及VSG动态响应,为理解故障机理、优化控制策略及设计继电保护提供了仿真依据与实践指导。

t8u9v0w1x的博客 514

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 343

记录一次update全表Commit后回滚的操作

起因:上周在做一个功能测试, 写完之后想从数据库里改点数据做测试使用. 由于我平时update语句都是先F8执行,再F10确认的. 倒也一直相安无事,加上如果你不加条件的话,pl/sql会提示你是否更新全表. 久而久之,我也习惯了由工具来提醒我是否该做次操作(坏习惯,必须得改). 然后偶然间看到了我的测试同事,在操作数据库时,都是在操作语句下面写上commit;我看到了之后就一直惦记着. 倒也不是说不知道这个东西,只是平时基本不写这个,发版时提交脚本的时候,也不让写commit,公司执行的系统会..

Rex_ZhengRH的博客 1569

哨兵1号回波数据(L0级)提取与SAR成像(全网首发)

本文先展示提取出的回波结果,然后使用RD算法进行成像,展示成像结果,最后附上哨兵1号回波提取的MATLAB代码。

3796

oracle 更新update语句

update 表名 set 列名=新值 where条件; select语句 for update;

xue_yanan的博客 9万+

ROS Motion Planning运动规划库安装方法及进阶使用方法详细介绍

​今天偶然发现了一个优质的运动规划库:ai-winter/ros_motion_planning,比较适合从事ROS移动机器人运动规划研究领域的小伙伴学习和使用,相比于莱斯大学Kavraki实验室提供的开源的著名运动规划库OMPL、或着我之前介绍过的zhm-real开源的zhm-real/MotionPlanning和zhm-real/PathPlanning运动规划库,今天介绍的ROS Motion Planning运动规划库与ROS机器人中常用的Navigation导航框架的兼容性更好,库中的运动规划

慕羽★的博客 5577

Mac版 Android Studio自带模拟器无法联网解决方案

前言 作为一枚安卓开发者,免不了使用模拟器来开发调试(毕竟它比手机方便太多)。但是因为适配需要,我们会更多的使用真机开发调试,那么当模拟器遇到这样那样的问题,我们往往会无从下手,其中最烦的就是网络问题。 我最近图方便,又重新用起了模拟器,但是发现联网失败,用模拟器内置的浏览器也打不开网页,于是百度上一通找,毫无效果,各种说用cmd命令行设置模拟器dns的都没用,显示没有什么dns文件啥的,后来...

陈万洲的专栏 1万+

UPDATE和COMMIT

<br />在数据库中:<br />update table set…是更新一个表中的数据。update 是dml语句的一种。insert, delete, select 也都是dml语句。<br />create table, create view ,alter table等等都是ddl语句。<br />commit :将事务提交。<br />每一个事务中可以有多个dml语句。同一个事务中,所有的dml语句要么同时提交(永久更新数据库中的数据),要么同时回滚(取消数据修改,恢复原来的数据)。<br />

6983

最全的Hermes安装教程以及Hermes WebUI安装部署和配置指南

* 直接执行命令**

小石头的专栏 1074

信息 按顺序打印commit_update语句的执行步骤及commit语句的执行顺序

update语句的执行步骤和其他DML语句的执行步骤是一样的包含insert 、delete语句等,执行步骤如下:一、如果数据和回滚数据不在数据库高速缓存区中,则oracle服务器进程将把他们从数据文件中读取到数据库高速缓存区中。二、oracle服务器进程在要修改的数据行上加锁(行一级的锁)三、oracle服务器进程将数据的变化信息和回滚段所需要的信息都记录在重做日志缓冲区中四、oracle服务器...

weixin_39814126的博客 119

SAP FICO 科目余额查询表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

SAP FICO 科目余额查询表开发说明书(包括开发源代码、测试样例)

我好像病了的博客 1041

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一条Update语句的执行过程是怎样的?

今天的分享就到这了,我们平时一条Update语句其实内部会经历很多流程,语句解析、日志WAL,Buffer Pool等。通过今天这篇文章的分享相信大家对流程已经很清晰了,后续将继续带来Redo Log、UndoLog等内容,敬请期待!

java_beautiful的博客 1115

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

UPDATE语句在MySQL中的完整执行流程

本文深入解析MySQL中UPDATE语句的执行流程,从SQL解析到最终提交的全过程。当执行一条UPDATE语句时,MySQL会经历连接管理、语法解析、优化器决策等步骤,然后InnoDB引擎会定位数据、加锁、生成Undo/Redo日志,并采用两阶段提交机制确保事务可靠性。文章还介绍了UPDATE性能优化技巧,如加索引、分批更新等,并总结了UPDATE的完整生命周期,帮助开发者更好地理解MySQL内部工作机制,优化SQL性能并解决相关问题。

dblens_com的博客 1333

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

怎么安排insert和update语句的执行顺序

另一方面,如果你正在创建一个新的记录,并且你需要使用这个新记录的某些信息来更新一个已经存在的记录,那么你可能需要先执行INSERT语句,然后再执行UPDATE语句。例如,你可能需要先更新一个用户的状态,然后插入一个新的订单,然后再次更新用户的状态。总的来说,安排INSERT和UPDATE语句的执行顺序需要考虑你的业务逻辑,事务的原子性和并发控制。你需要根据你的具体需求来决定如何安排这些语句的执行顺序。首先,如果你正在处理一个已经存在的记录,你可能需要先执行UPDATE语句,然后再执行INSERT语句。

高性价比服务器就选:蓝易云 795

MySQL—update语句执行流程

update语句执行流程框架图。update执行流程简图。

qq_44447372的博客 2032

IN UPDATE TASK 和MODIFY TABLE 的执行顺序

场景:CALL FUNCTION 'XX' IN UPDATE TASK和modify table的执行前后顺序,代码顺序为CALL FUNCTION 'XX' IN UPDATE TASK 在前,modify table在后且commit 在二者之后结论:在SAP ABAP开发中,和的执行顺序受SAP LUW(Logical Unit of Work)机制控制,。使用注册的函数不会立即执行,而是被中。函数实际执行需等待显式的语句触发。MODIFY操作会(通过隐式或显式的数据库提交)。

weixin_46639941的博客 1265

一条update语句在MySQL内部是如何执行的

一、Server层阶段: 1、连接器:负责跟客户端建立连接、获取权限、维持和管理连接 2、分析器:验证通过以后,分析器会对该语句分析, 判断是否语法有错误等。 3、优化器:选择索引,生成执行计划。 4、执行器:根据优化器生成的执行计划,调用存储引擎API执行SQL。 二、InnoDB引擎层阶段: 1、事务执行阶段 进入InnoDB后引擎层,首先会判断该SQL涉及到的页是否存在于缓存中,如果不存在则从磁盘读取该行记录所在的数据页并加载到BP缓冲池。 假设不存在,然后通过 B+Tree 读取到磁盘的索引

fangmeng1997的博客 666

MySQL 中的 UPDATE 语句

表中的数据,可以更新单行或多行数据。可能影响多行数据,建议。语句就能又快又安全!开启事务(如果支持)

鸟人的博客 1万+

mysql case when 处理顺序_mysql case when update 更新顺序 | 学步园

首先认为,在同一个事务里更新多条记录,mysql执行顺序和binlog的生成顺序一致java代码中调用jdbc如下次序更新数据库,Tx.beginSQL1SQL2SQL3Tx.end那么生成的binlog还是SQL1、SQL2、SQL3执行顺序但是在含有case when update语句中,生成的binlog顺序和,不是按照语句中从左到右的顺序的Connection con = DriverMa...

weixin_42431577的博客 856

access update语句执行_【MySQL】一条update语句的生命周期

最近看到一个关于MySQL的面试题:一条update语句在MySQL中的生命周期是怎么样的?我觉得这个问题很有意义,看似简单,实际上考察的是对MySQL整个架构体系的一个理解。那么我们就来整理一下一条SQL在MySQL中的整个历程。一、Server层阶段:连接器:首先当然是要跟MySQL服务端建立连接,那么连接器主要做的事情就是握手,建立连接工作线程,判断最大连接数,权限验证,和维持连接(循环)分...

weixin_39556891的博客 188
上一篇: oracle中sql查询语句的执行顺序
下一篇: oracle中的初始化参数文件
panf_dba
博客等级 码龄12年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值