oracle通过dblink查表卡住,通过DBLINK查询写入很慢
我这边有三个库,分别是:k1,k2,k3.分别在不同的网络,其中k2为中间交换库,上面有DBLINK分别到k1和k3开发经常做一个操作就是:
insert into table1@k1 (select tt.*,null from table1@k3 tt where xxxx=201510);
从k3的表中筛选一些数据再加一列空值插入到k1库的表中(数据大概1W多行),这个操作非常慢。(之前k2机器是物理机,听他们说做这个操作很慢,前几天物理机出问题,我迁移机器到虚拟化,之后他们做就反映很慢。),表结构如下:
名称 是否为空? 类型
----------------------------------------- -------- --------------
AAB301 VARCHAR2(6)
AAE043 VARCHAR2(6)
AAB001 VARCHAR2(20)
AAB004 VARCHAR2(100)
AAB003 VARCHAR2(10)
AAB019 VARCHAR2(3)
AAB020 VARCHAR2(3)
AAB021 VARCHAR2(3)
AAB022 VARCHAR2(6)
AAB050 VARCHAR2(8)
AAB051 VARCHAR2(3)
AAB121 NUMBER(16,2)
AAB246 NUMBER(16,2)
AAB210 NUMBER(16,2)
AAB256 NUMBER(16,2)
AAB259 NUMBER(16,2)
AAB268 NUMBER(8)
我做了个测试,在k2上面建立一个表,将k3的数据写到k2的表很快(大概20秒):
create table testwd as (select tt.* from table1@k3 tt where xxxx=201510);
insert into testwd (select tt.* from table1@k3 tt where xxxx=201510);
但是从本地表写到k1库的表却很慢:
insert into table1@k1 (select tt.*,NULL from testwd tt where xxxx=201510);
倒的时候查看了下网络及主机负载都不是很高,跪求求大神指导一下
,折腾了一天了
我这边有三个库,分别是:k1,k2,k3.分别在不同的网络,其中k2为中间交换库,上面有DBLINK分别到k1和k3开发经常做一个操作就是: insert into table1@k1 (select tt.*,null from table1@k3 tt where xxxx=201510); 从k3的表中筛选一些数据再加一列空值插入到k1库的表中(数据大概1W多行),这个操作非常慢。(之前k2机器是物理机,听他们说做这个操作很慢,前几天物理机出问题,我迁移机器到虚拟化,之后他们做就反映很慢。),表结构如下: 名称 是否为空? 类型 ----------------------------------------- -------- -------------- AAB301 VARCHAR2(6) AAE043 VARCHAR2(6) AAB001 VARCHAR2(20) AAB004 VARCHAR2(100) AAB003 VARCHAR2(10) AAB019 VARCHAR2(3) AAB020 VARCHAR2(3) AAB021 VARCHAR2(3) AAB022 VARCHAR2(6) AAB050 VARCHAR2(8) AAB051 VARCHAR2(3) AAB121 NUMBER(16,2) AAB246 NUMBER(16,2) AAB210 NUMBER(16,2) AAB256 NUMBER(16,2) AAB259 NUMBER(16,2) AAB268 NUMBER(8) 我做了个测试,在k2上面建立一个表,将k3的数据写到k2的表很快(大概20秒): create table testwd as (select tt.* from table1@k3 tt where xxxx=201510); insert into testwd (select tt.* from table1@k3 tt where xxxx=201510); 但是从本地表写到k1库的表却很慢: insert into table1@k1 (select tt.*,NULL from testwd tt where xxxx=201510); 倒的时候查看了下网络及主机负载都不是很高,跪求求大神指导一下 ,折腾了一天了