`

update机制

阅读更多

就 oracle 而言

update 的时候,如果存在索引字段的更新,则删除原索引条目(不是真正的删除数据,仅仅是在该行标记为 删除)插入新的索引条目

对于row本身的更新,是在行物理地更改,如果行的长度增加到当前位置无法容纳,则行的位置被提到 block的最上面一条记录的位置之上,假如该块已经无法容纳,则在原来行的物理位置保留一个指针,行被迁移到新的block,而保留的指针就是指向新的block的位置。这时索引中rowid不用发生变化,查询的时候先找到 那保留的指针,再去找  实际的新的位置。假如行迁移后再发生update 又导致迁移,则oracle首先看原来的位置的block是否具有容纳该行的空间,如果有就又迁移回去,如果没有就迁移到新的  块,修改原来最早块处的指针。  也就是说不会存在2个指针的查找才能找到  行

更新的时候,变化前后变化后的数据都被写入 redo ,变化前数据还被写入 回滚段,变化后数据被应用于 data  buffer 

若假设存在表t(a,b,c)
update  t set a = ...  where b = ... and  c = ...
则回滚段中只记录 a 的变化前的值

关于update 的时候通常需要通过索引去定位,否则是全表扫描就很慢了
而insert 则只是找个 block 插进去,两者的差异可能很大,可能完全不是一个数量级的时间和资源的消耗

 

1: 是的,data  buffer 中有回滚段块

2:update 如果仅仅是一个字段作为标记,并且长度不变,是可以的,row  lock 不消耗额外的资源,是数据行的一个属性。如果2个用户更新同一条记录,后来者需要等待


 

1:update的变化前数据写入日志文件,是为了  恢复的时候 写入回滚段的
2:data  buffer 中的变化是由 server  process完成(所谓的SGA中的block的变化都是server  process完成),而 block 写入文件是由dbwr 完成
insert 在回滚段中只 记录 rowid ,而 update 必须记录变化前数据

update 消耗更多的  回滚段、日志文件,当然查找数据、lock 等等都是问题,多用户情况下容易造成 并发  的等待

分享到:
评论

相关推荐

    Informatica Update 机制详解

    ### Informatica Update 机制详解 #### 一、概述 Informatica 是一款强大的 ETL(Extract, Transform, Load)工具,广泛应用于数据集成项目中。在 Informatica 的诸多功能中,Update 机制尤其重要,它允许用户对源...

    数据库oracle for update of和for update的区别

    在Oracle数据库中,为了确保数据的一致性和准确性,尤其是在多用户环境中进行并发操作时,锁机制是必不可少的一部分。本文将详细介绍`FOR UPDATE`与`FOR UPDATE OF`之间的区别,并通过具体的示例来帮助理解这两种锁...

    for_update_和_for_update_nowait_的区别

    标题和描述均聚焦于Oracle数据库中`FOR UPDATE`与`FOR UPDATE NOWAIT`两种锁定机制的区别,这在并发控制和事务处理中具有重要的意义。在深入解析这两种指令之前,我们先来简要回顾一下锁定机制的基本概念。 在...

    update.app格式解包工具

    在IT行业中,更新应用程序(update.app)是一种常见的软件更新打包格式,主要被用在...通过掌握这类工具的使用,可以深化对软件更新机制的理解,提高问题解决能力。不过,务必确保所有操作都在合法和安全的范围内进行。

    Qt+update函数+paintEvent事件

    在Qt框架中,`update()`函数和`paintEvent()`事件是进行界面绘制和更新的核心机制。本文将深入探讨这两个概念,以及它们如何协同工作来实现动态用户界面。 首先,我们来理解`update()`函数。在Qt中,所有的窗口部件...

    informatica全量,按时间戳增量更新抽取

    Informatica的Update机制是其核心功能之一,该机制支持对数据进行更新、删除等操作。下面将详细介绍Informatica的更新标志位设置过程: 1. **Init**: - 对于任何Mapping中的每一条数据,默认标志为Insert。如果...

    Autosar Com的Update Bit功能(UB)详解.zip

    - **故障恢复**:在Update Bit指示的更新失败情况下,系统应具备故障恢复机制,能够回滚到之前稳定的状态。 综上所述,Autosar Com的Update Bit功能是软件更新和诊断流程中的核心组成部分,它保证了汽车电子系统的...

    CATIA二次开发中的CAA命令(Command)类型

    Spec/Result 模型遵循Build/Update机制,确保当"specs"发生变化时,对应的"results"能够及时更新,以保持模型的一致性。 Build/Update机制包括两部分:一是重新计算每个spec以更新结果,二是定义spec之间的依赖关系...

    ibatis应对批量update

    ### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...

    Nod32 Update Viewer5.04

    Nod32 Update Viewer5.04则是针对NOD32官方更新机制的补充,特别是在没有官方更新服务或需要离线升级病毒库时,它就显得尤为实用。 在2012-11-26发布的这个版本中,Nod32 Update Viewer5.04可能包含了以下重要特性...

    PB并发控制与Row changed between retrieve and update详解

    PB并发控制与Row changed between retrieve and update详解 PB并发控制机制是指在多用户同时...PB 的并发控制机制可以通过数据窗口的更新属性(Update Properties)来实现,通过选择不同的策略来保证数据的完整性。

    测试覆盖率工具EclEmma使用培训

    EclEmma的安装非常便捷,可以通过Eclipse的Update机制进行远程安装,或者手动访问http://update.EclEmma.org/下载插件。安装完成后,EclEmma会在Eclipse的工具栏上添加Coverage按钮,方便用户快速启动覆盖率分析。 ...

    Windows Update Blocker v1.1.zip

    4. 恢复机制:如果决定重新启用自动更新,可以再次运行Windows Update Blocker,选择恢复默认设置。 总的来说,Windows Update Blocker v1.1 提供了一个方便的解决方案,适用于那些希望自定义Windows 10更新行为的...

    路畅畅云的Update.exe用于进入WinCE系统

    3. **安全机制**:在更新过程中,Update.exe可能包含验证机制,确保下载的更新文件来自可信源,防止恶意软件的注入,保护系统的安全。 4. **兼容性**:由于路畅Prima方案是针对特定硬件设计的,Update.exe需要与该...

    Go-go-update构建自我更新的Go程序

    这个库简化了自我更新机制的实现,使开发者能够专注于核心业务逻辑,而不是构建复杂的更新系统。 `go-update`库的核心概念是提供一个简单的API,该API可以检查远程服务器上的新版本,并在检测到更新时下载并替换...

    UN Regulation No.156 - Software update and software update manag

    【描述】:“软件更新管理:UNECE R156 SUMS(Software Update Management System)” 【标签】:“R156 SUMS 软件更新” 【正文】: 联合国统一规定第156号(UN Regulation No.156)是关于车辆软件更新及软件...

    vagrant--Update

    综上所述,"vagrant--Update" 涉及到 Delphi 程序的在线更新机制,利用 Indy 实现文件下载,配合数据库更新策略,以及使用 Vagrant 创建可重复的开发环境,确保升级过程的可靠性和跨平台一致性。在实际操作中,...

    WP7 Update Cab Sender

    **兼容性**:WP7 Update Cab Sender是针对Windows Phone 7系统的,对于WP8及更高版本的设备可能不适用,因为后续版本的更新机制有所不同。 总的来说,WP7 Update Cab Sender是一个实用的工具,尤其对于那些需要在无...

    windows 服务器镜像软件 update2k

    此外,考虑到其未注册时启动略慢的特点,可能包含了一种试用机制,未购买完整版本的用户可能会受到某种程度的使用限制。 尽管Update2K已经十多年没有更新,但这并不意味着它失去了价值。在某些特定场景下,比如对旧...

    rfc3311_sip_UPDATE.txt

    为了减轻这种风险,必须实施严格的认证机制,确保只有授权用户才能发送有效的`UPDATE`请求。 #### IANA 考量 为了确保SIP扩展的一致性和互操作性,`UPDATE`方法需要由IANA进行注册。这包括将`UPDATE`方法添加到SIP...

Global site tag (gtag.js) - Google Analytics