`
mai511960247
  • 浏览: 4711 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

大表全量update时采用表替换方式

 
阅读更多
刚开始时写的程序全表update,2张表数据都超过千万,速度超慢。
declare i int ;
begin
for i IN 0 .. 10
  loop
update (SELECT  /*+ BYPASS_UJVC */a.rowid, a.user_id , a.eparchy_code , b.user_id bbbb, b.eparchy_code cccc
  FROM  tf_b_tdiall a,crm_tf_f_user3 b
WHERE a.msisdn = b.serial_number and a.user_id is null
   AND b.remove_tag = '0' ) c
   set c.user_id = bbbb ,c.eparchy_code = cccc
   where rownum <100000;
commit;
end loop;
end ;

后来查了些资料,数据库在update时会记录大量的redo日志,造成极大的空间和时间上的浪费,解决方法可新建相同结构的一张表,然后采用insert和rename将表替换掉,整个过程1个小时以内就可以解决,而如果用上面的update,只怕几天都难以达到目的。
alter table TF_B_TDIALL_NEW nologging;

insert /*+ append */into TF_B_TDIALL_NEW
select a.TRADEID,a.MSISDN,a.IMEI,a.COMPANYNAME,a.TERMINALMODEL,a.SOFTWAREOS,
a.ISWCDMA,a.ISUMTS,a.ISHSDPA,a.ISHSUPA,a.ISGPRS,a.ISEDGE,a.ISWAP1,a.ISWAP2,a.ISMMS,
a.ISSTREAMING,a.ISSOUNDAAC,a.ISVIDEOAAC,a.ISMP3,a.FILE_NAME,a.INDB_TIME,a.MONTH,
a.IS_3G,b.USER_ID,b.EPARCHY_CODE,a.PARAM_VALUE4,a.PARAM_VALUE5 
from TF_B_TDIALL a,crm_tf_f_user1 b
where a.msisdn = b.serial_number and a.user_id is null
AND b.remove_tag = '0' ;
分享到:
评论

相关推荐

    批量替换msyql字段内容

    `position`指定匹配的起始位置,`occurrence`指定替换第几次出现的匹配,`flags`是可选的正则匹配标志,如全局匹配(g)、不区分大小写(i)等。 例如,如果我们有一个`users`表,其中`email`字段有一些用户邮箱...

    db2 manual replication guide

    与自动化的全量刷新不同,手动全量刷新提供了更多的控制权,特别是在处理复杂或特定场景时更为灵活。本文将详细介绍如何在DB2环境下执行手动全量刷新,并解释每一步操作的目的和意义。 #### 执行步骤详解 ##### ...

    18.分布式文档系统_Elasticsearch中partial update实现原理以及动手实战演练

    全量替换PUT /index/type/id创建文档&替换文档,就是一样的语法 全量替换一般对应到应用程序中,每次的执行流程基本是这样的: (1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改 ...

    Informatica的缓慢维度变化

    这种类型的主要作用是保留大部分的历史记录,即,当其中的一小部分进行变化的时候,抽取全部维度数据(即使全量的维度表对于 Informatica 也是很小的一部分数据),有更新的数据才进行替换。这样就可以节省时间,...

    详解MySQL误操作后怎样进行数据恢复

    创建一个名为`backup`的数据库,并建立一个名为`number`的表,包含一个自增主键`id`和一个时间戳字段`updatetime`。然后,使用Python程序向`number`表中插入10条数据。通过`SELECT * FROM number;`查询,可以看到...

    Mysql数据库备份恢复测试报告-xtrabackup.docx

    3. **恢复验证**:恢复后,通过检查数据库中的数据更新时间(如`mysql.innodb_table_stats`表的`last_update`字段),验证了恢复的时间点与备份时间一致,确保数据的准确性。测试结果显示,恢复到了2022年6月24日02:...

    基于ClickHouse+StarRocks构建支撑千亿级数据量的高可用查询引擎.pdf

    全量同步通常涉及清理临时表,然后通过ETL从Hive导入数据,再进行表的重命名操作。此外,可以通过Waterdrop提升写入速度,或者直接读取HDFS文件,但内存管理需谨慎。增量同步则涉及到特定分区的替换操作,以减少不必...

    基于hive Hook的hive原数据调整

    1. **基于 rpm 方式全量升级 tbds-metadata** - **停止 tbds-metadata 服务**:确保服务停止运行。 - **执行升级命令**:在 tbds-metadata 节点上执行 `yum update tbds-metadata`。 2. **在 HiveServer 所在...

    linux-实现mysql增量备份和还原

    全量备份是指备份所有数据库或数据文件,这是最基础的备份方式,但占用的空间较大。增量备份则只备份自上次全量备份或增量备份以来发生改变的数据,这种方式能显著减少备份所需的时间和空间。 实现MySQL增量备份的...

    db2导入文本数据的方法

    #### 二、DB2数据全量导入步骤详解 根据给定的部分内容,我们将详细解析整个数据导入的过程。 ##### 2.1 准备环境 - **步骤1**:确保使用`db2inst1`用户,并进入`/home/data`目录。这一步骤非常重要,因为DB2的数据...

    Kettle增量抽取数据实例.docx

    )是一个占位符,代表将在运行时被具体的时间值替换。 - **第三步:参数化查询与执行** 在Kettle中,可以使用“参数”(Parameter)功能将上一步获取的最大时间值传递给查询语句。在转换或作业中设置参数,并在...

    ssm动态生成实体,mapper接口,.xml映射文件

    它还支持增量更新,当数据库表结构发生变化时,可以只更新受影响的部分,避免了全量替换可能导致的问题。 7. **注意事项**:虽然自动化工具带来了便利,但也要注意代码的可读性和可维护性。生成的代码可能需要根据...

    Bugly自动更新Demo

    【Bugly自动更新Demo】是一个基于Bugly服务的示例项目,用于展示如何在应用程序中实现检查和执行全量更新的流程。Bugly是腾讯推出的一款专业的移动应用稳定性管理平台,它提供了强大的异常捕获、分析以及反馈能力,...

    BW 0RECORDMODE使用

    - **R (Replace)**:替换模式,也称为全量加载。这种模式会清除目标对象的所有现有数据,然后将源系统的全部数据加载进来。通常用于初次加载或者需要重置数据的情况。 - **U (Update)**:更新模式,仅对目标对象中...

    es快速入门笔记,自我整理,共75节

    十一、Document的全量替换、强制创建和Lazy Delete机制 * Document的全量替换。 * Document的强制创建。 * Lazy Delete机制。 十二、Elasticsearch并发冲突问题 * 悲观锁和乐观锁两种并发控制方案。 * 基于...

    Vue 常见面试题大全,背诵就完事了

    * beforeUpdate:数据更新时,被调用,发生在虚拟 Dom 重新渲染和打补丁之前 * update:由于数据更改导致的虚拟 Dom 重新渲染和打补丁,在这之后调用 * beforeDestroy:实例销毁之前调用 * destroyed:实例销毁之后...

    vue面试题: 前端面试题库

    - **Diff算法**:当虚拟DOM发生变化时,通过比较新旧节点找到最小变更,避免全量渲染。 5. **生命周期**: - **创建阶段**:`beforeCreate`、`created`、`beforeMount`、`mounted`。 - **更新阶段**:`before...

    CRUD-For-ArangoDB-Using-PHP

    2. **全量替换**:若需完全替换整个文档,可以使用 `replace` 方法。 ### 删除 (Delete) 删除数据的操作: 1. **删除文档**:使用 `remove` 方法,根据文档的 `_id` 或 `_key` 删除单个文档。 2. **清空集合**:...

    redission-tomcat快速实现从单机部署到多机部署详解

    与传统的Session管理方式不同,redission-tomcat仅在调用`HttpSession.setAttribute`时将Session参数写入Redis,避免了频繁的全量Session序列化操作,从而提高了性能。项目源代码可以在官方仓库找到,提供了针对不同...

Global site tag (gtag.js) - Google Analytics