日期:2014-05-16  浏览次数:20435 次

创建临时表导数据

? ? 这几天需要从一台远程的映射的数据库服务器导数据,在执行导数据存储过程的时候发现特别慢。在远程数据库上直接查询,速度很快。远程连数据库查也很快。
? ? 但是,当把远程数据库上的表和本地数据库的表进行连接查询的时候就特别的慢,我执行了一个存储过程,一晚上都没执行完。后来请教同事,采用创建临时表,先把远程数据都导入到本地临时表,然后将本地表和临时表进行连接查询。数据导入后,再把临时表删除掉,问题解决。

?

代码如下:


create table T_TEMP_HOUSE as

? ? select id,col1,col2,col3

? ? from second.HOUSE@SECOND.US.ORACLE.COM;


DELETE FROM HOUSE where id in (SELECT b.id from T_TEMP_HOUSE a,HOUSE b?

? ? ?where a.id=b.idand a.upddate!=b.upddate );


insert into HOUSE (id,col1,col2,col3)?

? ? ?select id,col1,col2,col3

? ? ?from T_TEMP_HOUSE a,HOUSE b?

? ? ?where ?a.id=b.id(+) and b.idIS NULL;

?

?