20230907

최현우·2023년 9월 7일

업무/개발일지

목록 보기
127/134
post-thumbnail

오늘의 일

  • 배치 실행시간 개선

  • 테스트 데이터 등록 및 테스트

배치 프로그램이 급 느려졌다고 개선하달라고 하셨다. 예전에는 30분 걸리던것이 4시간이 걸리게 되었던거다. 일단 결합테스트 환경에서는 속도의 문제가 없어, 생각을 해보니 현재 쿼리가 전부 서브쿼리로 이루어져있다. 각 서브쿼리의 테이블의 데이터 수가 검증환경과 다르기 때문에 내 쪽에서는 빠르게 되는거였다.

일단 더미데이터를 1000개정도 만든후에 기존 index를 삭제하고, filter에 맞게 새로운 인덱스를 추가하였다. full scan방식을 index scan 으로 바꾼후에, 검증환경에서의 실행시간을 확인해달라고 요청하였다. (나는 검증환경의 DB는 접속 불가하다 ㅎㅎ;)

후에 테스트 데이터를 등록하고 배치를 순서대로 실행한 후 대상 테이블의 데이터와 설계서를 비교하여 확인하는 작업을 하는데, nullPointException이 일어났다. 아마 mapping부분에서 일어난 오류라고 생각되어, 디버그를 했다. 예상대로 mapping부분에서 일어나고 있었다.
list를 필터하는(List.Stream*(.Filter(x -> ))이때 null값이 되는게 문제였다.
두개의 리스트를 비교하기 때문에 두곳의 대상filter를 비교하여 보니 없는 레코드가 한개 발견되었다.

원인은 where문에 최신변경 날짜를 조건으로 하는데, 한가지 레코드가 최신날짜로 설정되어 있지 않았기 때문에 일어난 문제였다. 대상 레코드의 해당 컬럼만 최신날짜로 바꿔준 후에 등록하였다. (내가 테스트데이터로 등록한거여서 맘대로 바꾸어도 된다)

profile
세상에서 가장 귀여운건 == 윤호 ? True : False 언제나 True❤️

3개의 댓글

comment-user-thumbnail
2023년 9월 11일

시간측정은 어떻게해 ?

2개의 답글