首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

存储过程速度慢解决思路

2013-07-27 
存储过程速度慢create or replace PROCEDUREC_CLOSE_ERROR_SO(ccn IN VARCHAR2,soNum IN VARCHAR2,soLine

存储过程速度慢
create or replace 
PROCEDURE                                                 C_CLOSE_ERROR_SO(
  ccn IN VARCHAR2
  ,soNum IN VARCHAR2 
  ,soLine IN VARCHAR2
) AS 
BEGIN
  DECLARE ROWCOUNT INT;
          COMMROWCOUNT INT;
  BEGIN  
      UPDATE SO SET CANC_DATE=TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD')
           ,TOT_CANC_QTY=NVL(TOT_ORD_QTY,0)-NVL(TOT_SHIP_QTY,0),TOT_COM_QTY=0 
       WHERE SALES_CCN=ccn AND SO=soNum AND SO_LINE=soLine;    
  END;
END C_CLOSE_ERROR_SO;

就这一条更新语句,速度非常慢,表SO的主键是SALES_CCN、SO、SO_LINE,如果不用存储过程就非常快,不知道是什么原因。

[解决办法]
慢了 ... 就去检查锁资源...
[解决办法]
看看事务是否阻塞,就是其他的地方是不是也有这条数据的update,但是没有提交。
你可以在存储过程加入commit;语句提交。
[解决办法]
看看入参  是否发生类型转换了~

热点排行
Bad Request.