执行查询语句速度很快,但是改成存储过程就超慢。

ggsysy 2018-02-11 04:40:23
如题,直接查询语句用时不到3秒,但是弄成存储过程后,执行结果根本出不来,好像卡住了。请问是什么问题?
...全文
2055 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxq129601 2018-02-27
  • 打赏
  • 举报
回复
你的游标里循环多少次啊
acen_chen 2018-02-27
  • 打赏
  • 举报
回复
感觉不需要游标的吧
minsic78 2018-02-25
  • 打赏
  • 举报
回复
不知道PL/SQL代码中的游标你是怎么在外边模拟的?
blt 2018-02-24
  • 打赏
  • 举报
回复
在plsql的test窗口跟踪一下,看卡哪里了。
Mricoo_周 2018-02-11
  • 打赏
  • 举报
回复
引用 3 楼 liuzhijian2008x 的回复:
楼主,你可以监控下 这个存储过程在等待啥等待事件。监控方法参考我博客。
或者用游标fetch bulk collect into的方式 分段式的插入数据
liu志坚 2018-02-11
  • 打赏
  • 举报
回复
楼主,你可以监控下 这个存储过程在等待啥等待事件。监控方法参考我博客。
ggsysy 2018-02-11
  • 打赏
  • 举报
回复
create or replace PROCEDURE 总部有货门店无货品种明细
(
  V_SUBBH IN NVARCHAR2
  --v_lsdl IN NVARCHAR2
) AS 
v_code VARCHAR2(20);
v_name VARCHAR2(20);
begin
EXECUTE   IMMEDIATE   'TRUNCATE   TABLE   lyl_总部有货门店无货品种明细';
DECLARE CURSOR SUBPHK_CURSOR IS SELECT code,name from organization where nvl(ISFORBIDDEN,0)=0 and code<>'03010757' and code like '%V_SUBBH%' order by code;      
      BEGIN
        OPEN SUBPHK_CURSOR;
        LOOP
        FETCH SUBPHK_CURSOR INTO v_code,v_name;
         --总部有货门店无货品种信息
          insert into lyl_总部有货门店无货品种明细 (门店编号,门店名称,货号,商品名称)
          Select v_code,v_name,a.hh 货号,a.pm 商品名称
          From yw A 
          left join KCLB lb on lb.id=a.lb
          left join (SELECT HH,subbh FROM SUBPHK WHERE SL<>0 AND SUBBH=v_code group by HH,subbh having SUM(sl)>0) sub on sub.hh=a.hh
          where nvl(a.jksl,0)>0 and sub.subbh is null
          order by a.lb,a.hh;
        END LOOP;        
        CLOSE SUBPHK_CURSOR;
      END;
  COMMIT;
  RETURN;
END;
  • 打赏
  • 举报
回复
你的东西贴出来看看。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧