我的包中有一个使用远程数据库链接的游标。 我想优化包的性能。 所以我想从优化光标开始。
我会提供一些分析信息,
查询的结构是
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) ));
这不是实际查询,但结构类似。
答案 0 :(得分:1)
首先尝试找一个你查询的瓶颈。 如果仅从远程表执行查询时出现问题 你可以使用提示/ * + DRIVING_SITE(...)* / https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements006.htm#BABEGIJC oracle将尝试在remoute数据库上执行