关于ORACLE对大表操作的效率问题
oralce有一张大表数据量30w以上. table_name
现在我要将一定数量数据插入到table_name表中 如果表中存在就做更新 如果不存在就插入
有什么好的办法来实现这个功能?
[解决办法]
方法1:merge into
方法2:先update後insert
30算很少的數據了,關聯列建索引
[解决办法]
一个merge into的例子。从表tj_test merge到 tj_test1.
create table tj_test(id number,name varchar2(20),age number);insert into tj_test values (1,'jan',23);insert into tj_test values (2,'kk',22);insert into tj_test values (3,'joe',27);create table tj_test1 as select * from tj_test where 1=0;insert into tj_test1 values (1,'jlk',23);merge into tj_test1 tt1 using tj_test tt on (tt1.id=tt.id) when matched then update set tt1.name=tt.name, tt1.age=tt.age when not matched then insert values(tt.id, tt.name, tt.age);
[解决办法]
那你就先把Excel导入临时表。然后merge into