웹에서 insert작업을 하는데 동시 작업시 어떤것이 부하가 적을까요? 0 2 1,869

by 이기락 [Oracle Tuning] 프로시저 insert WAS [2019.11.30 07:14:57]


was에서 insert 작업을 하는데 아래 두가지 방법중 어떤것이 테이블에 부하가 덜 갈까요?

현재 운영에서 [방법1]로 하고 있는데  5명이 동시 작업을 하면 10분이상 걸려 버립니다.
모니터링 하는 부서에서 테이블LOCK이 오래 발생한다고 연락이 오고 있습니다.


참고로 COMMIT은 웹특성상 마지막에 단1번만 해야 합니다.
 

[방법1]은 조회시간 + INSERT 시간 동안 테이블을 LOCK 걸고 있을것 같고

[방법2]는 SELECT 하는 동안은 테이블 LOCK이 안 걸릴것 같은데

맞나요?

----------------------------------------

쿼리1개를 돌려 봤을때
SELECT 조회만 하는 시간 :30초
INSERT 하는 시간 : 1분

----------------------------------------

[방법1]

INSERT INTO 테이블1
(컬럼1,컬럼2...)
SELECT 컬럼1,컬럼2 ...
 FORM 테이블2

 

[방법2]

DECLARE

    SELECT 커서 선언 +  BULK + LIMIT 1000 으로 처리

    LOOP
        --INSERT 작업  
        INSERT INTO 테이블1 ;
        ~~
    END LOOP;

END;

by 우리집아찌 [2019.12.02 08:37:54]

같은 질문을 계속 올리시는것 같은데 방법 두개 써봐도 같은 결과치이면 다른 방향으로 접근해보세요


by 임상준 [2019.12.05 14:26:40]

락을 부하라고 간주하시는게 조금 안 맞는 것 같고요. 동시사용자가 있을 때 락이 자주 걸리면 키 구성을 바꿔보시던가 데이터 입력 범위를 나눠보시던가 설계측면에서 풀어보시는게..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입