개발자
운영중인 java 배치데몬에서 조건중 특정 조건으로 업데이트 하는 method A()가 있습니다. main(){ methodA(): } methodA(){ update ~~ where a; } update 결과가 0이면 b조건으로 한번 더 업데이트하려고 하는걸 추가하려고 해요. 이때 방법1. methodA에 update where b;를 그냥 추가해서 사용할지 방법2. methodA를 공통으로 사용하도록 파라미터를 받도록 수정해서 만들고 main에서 if methodA(a)의 값이 0일 경우 methodA(b) 수행 이런식으로 하는게 좋을지 어떻게 하는게 효율적(메모리 관리 등)인 방법일까요? 참고로 해당methodA는 다른곳에서 사용하지 않아서 영향도는 없습니다~
답변 1
update where a; update where b; 가 아마도 DB쿼리에 대한 의사코드를 표현하신 것으로 추측합니다. 자바 코드 수준에서 if 분기로 나눌지 말지는, 성능이나 메모리상에 영향이 없다고 봐도 될 것 같습니다. 현대의 컴퓨터는 if 분기나 메소드 호출 추가 여부로 성능상 차이가 눈에 띄기는 힘들 정도로 너무도 빠릅니다. 다만, DB 쿼리라고 했을때, update where b에 해당하는 데이터가 꽤 많아서 쿼리 실행 시간이 오래걸리거나, DB 성능에 영향을 준다면, 조금이라도 부담을 덜어주는 측면에서 a 조건에 해당 된 경우에만, b조건을 실행토록 하는 것이 나을 수 있겠습니다. 만약 update where b의 쿼리 속도가 느리지 않은 경우라면, (= 간단한 쿼리라면) 저라면 그냥 update where a or b로 한 번에 처리하겠습니다.
익명
작성자
2022년 12월 16일
db쿼리에 대한 의사코드 표현 맞습니다. 워낙 오래된 프로그램이고 java7에서 돌아가는 녀석이라 고민했던건데 update가 오래걸리지 않는 간단한 것이기 때문에 한번에 처리하는게 좋을것 같네요. 의견 감사합니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!