监控批量操作进度
在使用PL/SQL实现批量数据处理时,通常使用DBMS_OUTPUT.put_line('step a')实现;但由于该函数并不能实时输出(在整个PL/SQL代码执行结束后才输出),无法实现进度监控的效果。这里摘录杨廷琨在《OracleDBA手记3》上...
海量数据处理_数据泵分批数据迁移
根据系统规划,需要将包含2亿条记录的表从A系统迁移到B系统(均为AIX+ORACLE10.2),主要问题是需要在半个小时的投产窗口内完成迁移。根据此要求,采用分批expdp/impdp方式实现。假设投产日为D日: * 第一批,...
海量数据处理_表分区(分区自动维护与历史分区归档)
1,分区自动维护CREATE OR REPLACE PACKAGE partition_managment IS /*======================================================*/ /* 增加分区 ...
海量数据处理_表分区(在线重定义)
使用在线重定义方式将表分区1,权限:execute_catalog_role:execute on dbms_redefinitioncreate any table alter any tabledrop any tablelock any tableselect any table2,确定是否可以重定义BEGIN dbms_re...
海量数据处理_批量插入
大量数据插入性能优化:1,通过使用如下选项,可能大幅度提高性能:更改表属性:drop indexdisable triggerdisable constraintalter table t nologging(关于日志,参考附录)处理过程:appendparallelbatch commit2.对于...
海量数据处理_表分区
分区act_log表:执行情况参考:数据:2亿条insert as select parallel 8=〉undo size:0 time:524 secgather_table_stats=>undo size:0 time:360 seccreate index parallel 8=>undo size:0 time:400 sec1,创建分区表...
海量数据处理_使用外部表进行数据迁移
问题:经常需要迁移大表数据,一般使用expdp/impdp、可移动表空间实现,也可以使用外部表。1,源库,创建一个外部表select count(*) from customer t;22703336set timing oncreate table CUSTOMER_EXTORGANIZATION E...
海量数据处理_表结构变更
问题:随着应用的演变,需要对大表结构进行调整,这里主要讨论删除列、增加列两种情况。注意:对于大表,进行较大的维护操作后,需要对表进行重构,对索引重构,重新收集统计信息。1,删除列1.1对于大表(3000万记...
海量数据处理_删除重复行
经常会遇到需要删除重复行的问题,以下给出可选方案:--0,案例drop table t;create table t(a int,b int);insert into t values(1,1);insert into t values(1,1);insert into t values(1,1);insert into t value...
海量数据处理_批量更新
问题: 经常需要在有限的投产停机窗口完成大量数据设置,比如根据A表的情况更新B表的某列。有如下几种方法:1,PL/SQL中的循环查找处理2,使用可更新视图,并行更新第一种方法最直观,适用于只更新少量...