database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41419 게시물 읽기
No. 41419
procedure에서 loop update 속도 관련 문의드립니다.
작성자
홍준표
작성일
2017-06-08 11:24
조회수
2,296
이하 프로시저에서 Loop 안의 Update 가 속도가 많이 느립니다.
데이터는 5000건 정도 있는데 5분 정도 걸립니다. 
 
BEGIN
    FOR TB001_TMP IN (
        SELECT AAA,BBB,CCC,DDD FROM TB001_TMP
        WHERE A.AAA NOT IN ('1','2','3') AND A.DDD > TO_CHAR(SYSDATE-3,'YYYYMMDD')
    )
    LOOP
    BEGIN
-- 이하 UPDATE 에서 시간이 걸립니다. 그냥 UPDATE 하면 바로 되는데 INDEX도 만들어 주었습니다.
        UPDATE TB001_TMP SET AAA = '9'
         WHERE BBB = TB001_TMP.BBB
           AND CCC = TB001_TMP.CCC
  AND DDD = TB001_TMP.DDD;
 
        TB001_PROC (TB001_TMP.BBB, TB001_TMP.CCC, TB001_TMP.AAA, TB001_TMP.DDD);
 
         UPDATE TB001_TMP SET AAA = '1'
         WHERE BBB = TB001_TMP.BBB
         AND CCC = TB001_TMP.CCC
AND AAA = '9'
AND DDD = TB001_TMP.DDD;
END
    END LOOP TB001_TMP;
 
END 
 
이 글에 대한 댓글이 총 1건 있습니다.

글쎄요. 인덱스는 생성하셨으니 인덱스 문제는 아닌 듯 하고.
업데이트를 두번 수행하는데 한번만 수행해도 되는것은 아닌지?
중간에 프로시져를 호출하는데 이것 때문에 느린건 아닌지?

마농(manon94)님이 2017-06-08 17:26에 작성한 댓글입니다.
이 댓글은 2017-06-08 17:26에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41423두개 Table row Count 비교 하기 [1]
jp
2017-06-15
2806
41422오라클 시험준비해야하는데 문제푸는거 도와주실분 계씬가요 ㅠㅠ
쀼쀼
2017-06-12
2323
41420group by 안쓰고 row 갯수와 첫번째 row 특정 컬럼값 가져오기 [2]
선이
2017-06-08
2537
41419procedure에서 loop update 속도 관련 문의드립니다. [1]
홍준표
2017-06-08
2296
41418DB 계정분리 시 효율적인 방법 문의드립니다.
병아리DBA
2017-06-05
2094
41417TABLESPACE 의 PK값 삭제
lee
2017-06-02
2235
41416오라클 connection이 자꾸 failed로 뜹니다.
오라클그켬
2017-06-01
2330
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.071초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다