暂无图片
优化-存储过程调用远端库的视图,运行缓慢
我来答
分享
陈凯文
2019-11-07
优化-存储过程调用远端库的视图,运行缓慢
暂无图片 5M

用户提出需求
1.查询速度缓慢的问题是一直存在的,函数P_VOY_CNTR_LOG在程序中作为一个定时任务每10分钟执行一次; (由于查询缓慢所以设定为10分钟,业务上的要求希望能控制在2分钟以内)
2.对应的系统(bargelink)为实时事务性系统,需要及时的同步数据,因为业务上不断的调整,系统对此数据来源依耐性极高,所以亟需解决查询缓慢的问题。
在运行P_VOY_CNTR_LOG时,若不调用bp_cntr_ld_vw的sql语句则运行时间为00:00.46s,调用bp_cntr_ld_vw之后运行时间为00:56.94s,所以猜测是bp_cntr_ld_vw引起的。

存储过程P_VOY_CNTR_LOG(请见附件“procedure.txt”)位于40.31,bp_cntr_ld_vw是通过DBLINK创建的同义词,DBLINK指向40.89上的数据库。

在40.89上,bp_cntr_ld_vw是一个视图(请见附件“视图”)。
附件“执行计划”为select * from bp_cntr_ld_vw

请问该如何优化呢

我来答
添加附件
收藏
分享
问题补充
8条回答
默认
最新
陈凯文
上传附件:procedure.txt
暂无图片 评论
暂无图片 有用 0
陈凯文
上传附件:同义词.txt
暂无图片 评论
暂无图片 有用 0
陈凯文
上传附件:执行计划.txt
暂无图片 评论
暂无图片 有用 0
文成
select count(*) from bp_cntr_ld_vw;
暂无图片 评论
暂无图片 有用 0
陈凯文

1.png

暂无图片 评论
暂无图片 有用 0
陈凯文

返回32W+ 请见附件

暂无图片 评论
暂无图片 有用 0
文成
SELECT /*+ driving_site(v) */
 *
  FROM BP_CNTR_LD_VW V
 WHERE IN_DCB_VOY_CD IN (SELECT DCB_VOY_CD FROM TMP_ LIGHT_VOY)
    OR OUT_DCB_VOY_CD IN (SELECT DCB_VOY_CD FROM TMP_LIGHT_VOY);

在存储过程所在的库运行,看需要多久

暂无图片 评论
暂无图片 有用 0
陈凯文

image.png

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏