처리결과 0건일때 commit의 유무질문 0 2 717

by 김선우 [DB 기타] [2019.09.26 08:18:38]


로직처리후에 결과 적으로 업데이트와 인서트 건수가 0건일때

나중에 commit을 건수와 상관없이 실행하고 있는데

0건이면 commit을 할 필요가 없지 않냐고 하는데 해도 성능적으로 무방하지 않나요?

대상테이블에는 약 1억건정도의 레코드가 있는 테이블 입니다.

 

논리적으로 보면 하지 않는게 맞는거 같은데

프로시저로 짠게 하니고 그냥 sql처리인데

건수체크를 하고 테스트 비용을 생각했을때 무조건 commit이 이상한건가요?

 

의견 부탁드립니다.

 

by jkson [2019.09.26 08:33:25]

업데이트와 인서트가 되면 tx lock(row lock)이 걸립니다. 이 경우 commit이 필요합니다.

데이터 변경이 없다면 개발자 입장에서는 commit이 필요 없을 수 있는데요.

업데이트와 인서트문을 날리면 tm lock(table lock)도 걸립니다.

데이터 변경이 없다고 하여 commit을 안 하면 tm lock은 해제가 안 되고

DBA가 테이블 alter 등의 작업을 할 때 해당 lock 때문에 테이블 변경이 불가합니다.

insert, delete, update 명령어 후에는 commit이 있어야 합니다.


by 우리집아찌 [2019.09.26 13:59:34]

소스를 안봐서 모르긴한데 상황에 따라 건수 채크하는게 더비효율일지도 모르지요

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