海量数据处理_使用外部表进行数据迁移
问题:经常需要迁移大表数据,一般使用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,使用可更新视图,并行更新第一种方法最直观,适用于只更新少量...
DUAL是真实的表吗
DUAL是真实的表,还是优化器对DUAL的引用进行特别处理?结论:是真实的表,见以下分析。同时,根据建库脚本$ORACLE_HOME/RDBMS/ADMIN/dcore.bsq,优化器对该表有特殊处理,具体如何处理没有详细说明。1 执行计划se...
DB2锁问题
对一个熟悉Oracle的人而言,了解到DB2的加锁机制(缺省CS隔离级别),会对DB2的并发性产生很多担忧。 可能DB2通过提供许多...
SQL中调用包含dbms_lock.sleep的函数
问题:SQL中函数调用时:对每一个返回行调用一次?有缓存吗?函数中有dbms_lock.sleep时,会停顿吗?每行还是在输出数组?update中有会如何处理?--1,test objectscreate or replace function sleep_10 return dat...
awk分析日志
awk非常适合于文本文件处理,特别是利用内置数组,可以实现多个数据行关联处理。比如,从应用日志中分析各类请求数量、处理时间等。1,待处理日志文件a.trc-------------------------------------------------------...
等值更新时索引维护成本
1,问题: 发现应用程序代码中存在如下情况:在只需更新部分列时,同时更新其他列为原有值。虽然从功能实现角度看没有问题,但从数据库角度看,引入很多额外成本,例如:更多的undo,redo,不必要...
select与update的读一致
问题:一般的理解,在read commited隔离级别,Oracle实现了语句级读一致,即语句开始执行时数据库的一致状态,包括对select,update,delete。问题:如果更新一个大表,需要更新的行在加锁前被其他会话更新并提交,...