有一个大表,大表由于录入时候有个空置,现在将空置赋予日期

1.该表很大,8t,由三列,其中create_time,现在要求修改成非空值,由于数据量比较大,因此采用分批来增加。

脚本如下
create or replace procedure PRC_UPDATE_CREATE_TIME is
start_num integer;
start_date date;
total number;
update_count integer;
per_loop_count integer;
begin
dbms_output.put_line(‘Start to batch update‘);

start_num := 1; -- start value of cycle
per_loop_count := 100; -- per cycle handle count
start_date := to_date(‘20100101‘, ‘YYYYMMDD‘); -- start date of create_time

/ get total number of the update records /
select count(1) into total from tmp_loan_file_data
where CREATE_TIME is null;

dbms_output.put_line(‘total number:‘);
dbms_output.put_line(total);

update_count := total/per_loop_count;
if (mod(total, per_loop_count) > 0) then
update_count := update_count + 1;
end if;

dbms_output.put_line(‘loop times:‘);
dbms_output.put_line(update_count);

/ Loop to update records /
while start_num <= update_count loop

dbms_output.put_line(‘loop seq :‘);
dbms_output.put_line(start_num);

merge into tmp_loan_file_data src_tab
using (select t.rowid as rid
from tmp_loan_file_data t
where t.CREATE_TIME is null
and rownum >=1
and rownum <= per_loop_count) sel_tmp
on (src_tab.rowid = sel_tmp.rid)
when matched then
update set CREATE_TIME = start_date;

start_num := start_num + 1;
start_date := start_date + 1;
commit;
end loop;

dbms_output.put_line(‘End batch update‘);
end PRC_UPDATE_CREATE_TIME;

原文地址:https://blog.51cto.com/lishiyan/2353643

时间: 2024-07-29 20:18:21

有一个大表,大表由于录入时候有个空置,现在将空置赋予日期的相关文章

大数据量表结构设计案例

在处理大数据量的表时,会消耗数据库的大量性能,所以,在设计数据库表时,要考虑到此种现象,将数据库设计的合理合法,来提高数据库性能减小数据库压力. 当表记录太多,如产品.的订单.大量客户等,是数据库访问压力的主要来源,此时,从数据库拆分表的角度来减轻压力,可以采用如下两种方法: 1.对表进行水平分割 水平分割:以该表主键PK的某个值为界限,将该表的记录水平拆分为两个表 2.对表进行垂直分割 垂直分割:表字段太多,按照表字段拆分,将一个表垂直分解为两个表 例:有产品表,数据量为10w,数据量稳定:

mysql大数据量表索引与非索引对比

1:不要在大数据量表中轻易改名字(做任何操作都是非常花费时间) 2个多亿数据量的表 改名操作  执行时间花费8分多钟 (如果是加索引等其他操作 那时间花费不可预估) 2:给大数据量的mysql表 添加索引 所花费的时间 如下 在日后生产环境 如果需要给表添加索引等操作 心里要有预估时间的花费范围 3: explain 解释 语句 type:ALL 进行完整的表扫描 .row:213284372  mysql预估需要扫描213284372 条记录来完成这个查询.可想而知 表数据量越大全表扫描越慢.

MySQL---数据库从入门走上大神系列(四)-子查询、表与表之间的关系

本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系! 准备: 首先我们创建一列sex.再为部分行设置好值0(女)或者1(男): delete from stud where age=26; 删除年龄为26的行. update stud set sex='1' where saddress like '湖南%'; 将地址中湖南开头的人的的sex修改为1. update stud set sex='0' where age>=30 and sex is null;

一个简单的微安表

这是一个用STM8S103F3P6单片机和一个LM358运算放大器制作的一个简单的微安表,可以用来测量1mA以下的小电流,分辨率是1uA.接通电源就开始测量. 开机时的工作电流是15mA,使用9V层叠电池供电.电路板: 内部图片: 电路图在最后一页.原理很简单,通过一个100欧的电阻对待测电流取样,经过一个LM358放大50倍后送到单片机进行AD转换.这个单片机的电源电压为5V,AD分辨率10位.设进来的电流为A微安,理论上AD的读数X可以通过下式得到: X = 100*A*50*2^10/(5

定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?

原文:http://www.iteye.com/problems/77856 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据? 表结构肯定是不能破坏,但是临时表如果是自己的数据库还行,问题是这个Oracle数据库是客户的数据库呢,你不能在他的数据库做任何多余的操作吧?还有别的更好的方法吗? 这个真的是比较困难. 首先,你要从客户机oracle取数据,因为这1分钟间隔之内不知道用户机新增加了哪些数据(大部分情况下是用户使用别的系统插入数据,而你又没有这个系统的程序接口

用Vue构建一个github“可视化大数据平台”-GitDataV,设计开发分享

写在前面 GitDataV,是一个github“大数据可视化平台”,通过它你可以更直观的看到你在github里的一些数据,(之所以打双引号,是因为我觉得这个还没到大数据可视化的程度).其实我在 上篇文章 分享的时候已经提到了这个想法,通过github提供的接口,做一个自己的“大数据分析页面”,所以我就花了几天晚上的时间,把这想法从设计到开发构建出来了,那么下面我就我个人的账号测试看看效果如下gif图 如果您感兴趣可以点击这里访问简单的:GitDataV网站(目前打包后有些小bug,但不影响正常使

一个sql导致temp表空间爆掉

Buffer sort引发的血案 今天遇到的一个问题,在线系统上,有两张表,test1大概50G,test2大概200G,需要查询出来test1表中部分记录,并且这些记录不存在test2表中.于是就写了一个sql: select t1.* from test1 t1, test2 t2 where t1.col1 = t2.col1(+) and t1.col2 = t2.col2(+) and t1.col3 = t2.col3(+) and t2.col1 is null; 因为是在线系统,

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对)

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对) #include<stdio.h> #include<stdlib.h> void PrintSumNumbers(int Arra[],int ASize,int Sum) { //O(1) if (ASize<2) { printf("The size of the Arra is invalid.\n"); return; } if(Sum&

如何将一个数据库中的一个表复制到另一个数据库中的表中

如何将一个数据库中的一个表复制到另一个数据库中的表中 2013-09-11 17:13匿名 | 浏览 13763 次 如何将一个数据库中的一个表复制到另一个数据库中的表中两个表的列名不同.有知道的么?SQL语句直接导过去.! 2013-09-12 20:26网友采纳 热心网友 如果另一个库中没有同名的表select * into b数据库.dbo.a表 from a数据库.dbo.a表 where 条件 如果是追加到另一个表中inert into b数据库.dbo.a表select * from

将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对&lt;name&amp;value&gt;格式和JSON格式。

http://zhengxinlong.iteye.com/blog/848712 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name&value>格式和JSON格式. /// <reference name="jquery.js" description="1.3.2版本以上" /> /*!* 扩展jQuery表单序列化函数:{ Version: 1.2, Author: Eric