首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何优化复杂的分布式查询?

如何优化复杂的分布式查询?
EN

Stack Overflow用户
提问于 2016-10-21 05:57:05
回答 1查看 100关注 0票数 0

我的包中有一个游标,它使用远程DB链接。我想优化软件包的性能。所以我想从优化光标开始。

我会给出一些信息来分析,

  • 查询中没有本地表,只有远程DB链接。
  • 游标查询使用6个远程DB链接并对它们执行连接操作。
  • 所有DBlinks都指向相同的DB,但指向不同的表。
  • SELECT没有任何聚合操作,只对少数列具有NVL功能。
  • 大约有90列被选中。

查询的结构是

代码语言:javascript
运行
复制
SELECT (SOME 90 COLUMNS)
FROM    master1_all@db_one m1,
        master2_all@db_one m2,
        prey1@db_one pa,
        prey2@db_one pb,
        prey2@db_one pc,
        tbl_abc@db_one xa,
    (SELECT
      geo.country,
      geo.state
    FROM  tb_dest@db_one geo ) geo  WHERE ( m1.master_key = m2.master_key ) AND
    ( pc.weather_key = m2.cloud_key ) AND
( m1.order_type_id = pa.weather_key ) AND
( pa.weather_key = pb.weather_key ) AND
( m2.food_store_key = xa.food_store_key ) AND
( (nvl(m2.shop_key ,121)) = xa.store_key ) AND
( geo.country (+) = m1.country ) AND
(xa.food_type NOT IN ('COLD')) AND
( m2.food_type_code NOT IN ('WINTER')
    OR m2.price_per_portion !=0 ) AND
( ( m1.last_purchase_date >= TRUNC(SYSDATE-10) - 1/48 And m1.last_purchase_date <= TRUNC(SYSDATE) ) 
Or ( m2.last_purchase_date >= TRUNC(SYSDATE-10) - 1/48 And m2.last_purchase_date <= TRUNC(SYSDATE) ));

这不是实际的查询,但结构是相似的。

EN

回答 1

Stack Overflow用户

发布于 2016-10-21 08:39:12

首先,试着找出你的疑问瓶颈。如果仅在远程表执行查询时出现问题,可以使用提示/*+ DRIVING_SITE(.) */ elements006.htm#BABEGIJC,而oracle将尝试在remoute数据库上执行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40169345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档