/*+ bypass_ujvc */ 관련 질문입니다. 0 4 2,678

by 이상민 [2007.12.24 09:35:23]


마감SP를 수정중인데요..

 

 커서로 돌면서 Update하던 내용을

 

Temp테이블을 사용해서 중간 입력하고 ,

그 내용을 가지고 한번에 Update하는 방법으로 바꿨습니다.

 

Update할때는 /*+ bypass_ujvc */ 를 사용했구요.

 

그런데 제가 수동으로 SQL문을 실행해서

Temp테이블에 입력하고, 업데이트를 실행하면

1초미만으로 시간이 걸리는데

 

SP안에서 구동되면

2분이 걸리네요.

 

쿼리가 달라지는것도 아닌데 왜이러나싶어서요..

어디가 문제인지 감이 안잡혀 조언을 구합니다.

 

어디가 대충문제인지 알면

소스라도 올려서 참고하시라고 보여드리는데

일단은 Update구문을 적어봅니다.

 

 UPDATE /*+ bypass_ujvc */
                (  
                 SELECT  A.UNIT_PRICE,
                               A.AMT1,
                               A.IO_TYPE,
                               A.IN_QTY,
                               A.OUT_QTY,
                               A.TA_QTY,
                               A.updt_date,
                               B.UNIT_PRICE AS REC_UNIT_PRICE
                 FROM     AT_MMAT_LEDGER A,
                               AT_MMAT_LEDGER_TEMP B
                 WHERE   A.CLOSE_YYMM = V_CLOSE_YYMM
                 AND       A.IO_TYPE <>'204'
                 AND       A.UNIT_PRICE=0
                 AND       A.CORP_ID = TRIM(B.CORP_ID(+))
                 AND       A.WORK_YMD = B.WORK_YMD(+)
                 AND       A.WORK_NO  = B.WORK_NO(+)
                 AND       A.WORK_LINE = B.WORK_LINE(+)
                 AND       A.PREQ_YYMM = B.PREQ_YYMM(+)
                 AND       A.PREQ_NO   = B.PREQ_NO(+)
                 AND       A.PREQ_SEQ  = B.PREQ_SEQ(+)
                )X
                  SET     unit_price = REC_UNIT_PRICE,
                             amt1 = DECODE(substr(io_type,1,1),'1',in_qty * 

                                       X.rec_unit_price,
                                    '2',(out_qty + ta_qty) * X.rec_unit_price),
                             updt_date = sysdate
                 WHERE   REC_UNIT_PRICE IS NOT NULL;

 

값을 직접입력할때랑 변수로 넣었을때랑

변수값으로 인해 실행계획이 많이 바뀌네요..

원인은 저거였다는거~

by 이상민 [2007.12.24 00:00:00]
공식 지원 ( ' ')힌트가 아니군요!그래서 그런가..

by 이상민 [2007.12.26 00:00:00]
ㅠ _ ㅠ아무도 모르시나요

by 이상민 [2007.12.26 00:00:00]
문제는
V_CLOSE_YYMM
이거군요;

by 최용호 [2008.06.24 00:00:00]
V_CLOSE_YYMM 곳에 변수가 들어 가서
INDEX를 못 타서 더 걸리는 거 아닌감요?
FT 를 해서리.... ㄷㄷㄷ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입