这个数据量上,应该做的是hash join outer
分区对效率应该没什么帮助
分区对效率应该没什么帮助
解决方案 »
- timesten连oracle 报错 不是有效地的存储过程
- oracle中的system账户问题
- oracle升级到9.2.0.7的问题
- 求一简单的sql语句
- 一个关于where条件的问题
- 再起一贴问JOB的问题!高手指点!
- 写一条SQL语句,在线等待
- 求一sql查询语句!很急,拜托高手!有关distinct用法的
- 119请教
- 将Oracle数据库和Form Builder装在同一台机器上,为什么Oracle Net8 Easy Config启动不了!
- C#使用Oracle.ManagedDataAccess.Client如何获得执行后的影响行数?
- 关于dbvisualizer Pro 9使用问题?
对于这样的大表,最好不要全表merge
可以分批进行,配合分区比如a表有3个分区,DD_PARTITION_DATE 范围分别是date'2014-1-1' 到date'2014-1-31'、date'2014-2-1' 到 date'2014-2-28' 、date'2014-3-1'到date'2014-3-31'
b表的DD_PARTITION_DATE 值也在这3个范围内。分3批来merge
merge into a partition (p201301) t1
using (select * from b where b.DD_PARTITION_DATE>= ........ and b.DD_PARTITION_DATE <....) t2
on (t1.DD_PARTITION_DATE =t2.DD_PARTITION_DATE )
.................
如果分区较多,可以写个存储过程来拼接执行