Discuz教程网

哪里有复杂的dblink查询语句可以参考一下?

[复制链接]
authicon 千度 发表于 2010-10-26 03:47:26 | 显示全部楼层 |阅读模式

网上最多的是  select * from a@b 之类的语句。假设多个表,复杂查询有没有问题?



上一篇:哪位高手能解读一下线面的trace文件内容?post info什么意思?
下一篇:单纯的select语句能否用wrap加密?
authicon 拿钱发帖死全家 发表于 2010-10-26 04:39:09 | 显示全部楼层

这个最好找开发要一下
authicon renxiao2003 发表于 2010-10-26 05:11:22 | 显示全部楼层

应该没什么问题。
authicon duolanshizhe 发表于 2010-10-26 06:56:35 | 显示全部楼层

只要你定义的dblink测试是通过的,那么就像访问本地表一样进行连接,
只不过表名之后多了个@dblink而已
authicon blackantt 发表于 2010-10-26 07:50:43 | 显示全部楼层

我dblink已建好,简单查询也没问题。
但是假设我有各种复杂查询,想通过dblink从源查询并将结果直接插入我本机库中,会不会导致源库出问题?  没有这方面的经验,也不敢轻易尝试。假设能,有没有该注意的地方?
查询类似于下
select c_abc.abc_lac||'_'||c_abc.abc_cell_id lac_ci,
       to_char(sysdate,'yyyymmdd') as today,
       abc_uarfcn,
       abc_pri_scr_code psc,
       abc_CELL_ADDITIONAL_INFO,
       .......
       abc_prx_noise,
       abc_prx_noise_autotuning,
       abc_SIB7_FACTOR,
       abc_ADMIN_CELL_STATE,
       abc_id,
       abc_rnc_id,
       abc_WBTS_ID,
       adjs_tmp.s_lac_ci,
       adjs_tmp.adjs_num,
       adjs_tmp.adjs_ci1,
       adjd_tmp.adjd_num,
       adjd_tmp.adjd_ci1
from
       (
        select s_lac_ci,count(*) as adjs_num,replace(wmsys.wm_concat(t_lac_ci),',',' ') adjs_ci1
        from
             (
        select c_abc.abc_lac||'_'||c_abc.abc_cell_id               s_lac_ci,   
               REGEXP_substr(uu_rxlev.co_dn,'[[:digit:]]+$') adjs_id,     
               c_adjs.adjs_lac||'_'||c_adjs.adjs_ci                    t_lac_ci      
        from   c_adjs,uu_rxlev,c_abc,(select a.abc_lac,b.SY_RNC_NAME,B.RNC_ID from (select abc_lac,abc_rnc_id from c_abc where abc_lac is not null group by abc_lac,abc_rnc_id) a,(select co_name sy_rnc_name,REGEXP_substr(uu_rxlev.co_dn,'[[:digit:]]+$')  rnc_id from   c_rnc,uu_rxlev where  c_rnc.obj_gid=uu_rxlev.gid and co_name like 'SYRNC%') b where  a.abc_rnc_id=b.rnc_id) lac_rnc
        where  c_adjs.obj_gid=uu_rxlev.gid
               and uu_rxlev.co_parent_gid=c_abc.obj_gid
               and c_adjs.adjs_change_origin is not null
               and c_abc.abc_lac in lac_rnc.abc_lac
             )
        group by s_lac_ci
        ) adjs_tmp,
         (
         select s_lac_ci,count(*) as adjd_num,replace(wmsys.wm_concat(t_lac_ci),',',' ') adjd_ci1
         from (
               select c_abc.abc_lac||'_'||c_abc.abc_cell_id               s_lac_ci,
                      REGEXP_substr(uu_rxlev.co_dn,'[[:digit:]]+$') adjd_id,
                      adjd_adjd_lac||'_'||adjd_adjd_ci                        t_lac_ci
               from  c_rnc_adjd,uu_rxlev,c_abc,(select a.abc_lac,b.SY_RNC_NAME,B.RNC_ID from (select abc_lac,abc_rnc_id from c_abc where abc_lac is not null group by abc_lac,abc_rnc_id) a,(select co_name sy_rnc_name,REGEXP_substr(uu_rxlev.co_dn,'[[:digit:]]+$')  rnc_id from   c_rnc,uu_rxlev where  c_rnc.obj_gid=uu_rxlev.gid and co_name like 'SYRNC%') b where a.abc_rnc_id=b.rnc_id) lac_rnc
         where c_rnc_adjd.obj_gid=uu_rxlev.gid
               and uu_rxlev.co_parent_gid=c_abc.obj_gid
               and c_rnc_adjd.adjd_adjd_change_origin is not null
               and c_abc.abc_lac in lac_rnc.abc_lac     
        )
        group by s_lac_ci
        ) adjd_tmp,
        uu_rxlev,
        c_abc,
        (select a........id) lac_rnc
where c_abc.abc_lac||'_'||c_abc.abc_cell_id=adjs_tmp.s_lac_ci(+)
      and adjs_tmp.s_lac_ci=adjd_tmp.s_lac_ci(+)
      and c_abc.obj_gid=uu_rxlev.gid
      and uu_rxlev.co_state=0 and c_abc.abc_STATE is not null  
      and c_abc.abc_lac in lac_rnc.abc_lac
      ;
authicon duolanshizhe 发表于 2010-10-26 09:13:42 | 显示全部楼层

恩  你的查询是够复杂的啊
假设仅仅通过dblink从源数据库查询数据,然后插入到本地数据库中,完全是没有问题的,不会对源库有什么影响,假设非要说影响的话,那就是查询如何性能不够优化,可能会导致源库性能下降,仅此而已!
authicon 拿钱发帖死全家 发表于 2010-10-26 11:29:07 | 显示全部楼层

这么多条件啊,中间还省略了一部分:em06:
authicon duolanshizhe 发表于 2010-10-26 12:46:05 | 显示全部楼层

抓住主要矛盾即可
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 18:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表