在开发版发了一篇,没人会答,在这个版再发一篇,请高手赐教,万分感激!!!
现在我遇到这样一个问题,我从数据源取数据放入我们的数据仓库里!
在我们的机器上有两个oracle数据库,一个数据源库dsdw,一个是数据仓库tftax
我在数据仓库(tftax)里面做了dblink连接到数据源库(dsdw),这样就方便访问,
现在有一个比较复杂的sql语句,从数据源库(dsdw)查询结果,我把这个复杂的
sql语句在数据仓库(tftax)里面执行,执行好久都没有结果出来,于是,我把
这个复杂的sql语句放到数据源库(dsdw)去执行,发现不用一份钟就可以看到结果,
这到底是为什么?dblink需要怎么设置才能提高访问速度?
另外,我把上面的这个查询结果插入一张表,我在数据源库(dsdw)去执行一个查询
并且把这查询的结果插入数据仓库(tftax)里的一张表table1(insert table1 select * from table),
我花了2500多秒,才查完,但是我把这查询结果插入的表该成数据源库(dsdw)的一张
表table2我发现只要几十秒就搞定! 我把这个table2的数据插入到table1,也就一下子搞定
这个时间差到底怎么设置才有能减少?
---------------------------------------------------------------
不清楚你的具体情况,很难判断,正好最近我也在搞多个数据库之间数据交换的问题,以下是几个建议:
1、如果instances在同一台服务器上,最好采用ipc协议建立dblink,ipc协议比tcp/ip快很多倍。
2、从dblink远程端查询比起本地查询速度慢很多,所以查询的时候尽量在数据访问量比较大的一端进行。
3、用sql/plus的copy命令插入纪录比dblink快很多
---------------------------------------------------------------
好久没有见老大来了,先问个好!
关于dblink:
http://www.experts-exchange.com/Databases/Oracle/Q_20484585.html