实际工作中遇到这样一种情况,服务器A上的数据库中有两张表tab_a和tab_b,服务器B上的数据库有一张表tab_c,我已在服务器A上建好dblink并对tab_c建了同义词(名为tab_c),
insert into tab_c select * from tab_a ,tab_b where tab_a.id=tab_b.id and tab_a.task_no='23';
这样插入4000数据却需要18分钟,相应字段都有索引,哪位大神帮忙看看,是什么情况啊?和先查询再远程插入有关吗?tab_a单表大概九千万数据,tab_b表20万数据。谢谢了~
------解决思路----------------------
select * from tab_a ,tab_b where tab_a.id=tab_b.id and tab_a.task_no='23';
服务器A这个查询要多久呢?
tab_c 是否有其他耗时 类似触发器等
------解决思路----------------------
select * from tab_a ,tab_b where tab_a.id=tab_b.id and tab_a.task_no='23';
先看这部分的执行效率。
插入可以采用并行、不产生日志等多种方法提升效率。
但关键还是先看查询结果的内容