• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

배치데이터가 쌓였을 때 속도 문제

23.05.09 17:20 작성 23.05.09 17:30 수정 조회수 382

0

안녕하세요 선생님

강의 듣고 프로그램 배포해서 잘 운영하고 있습니다.

다름이 아니라 운영중에 데이터가 점차 쌓이면서

데이터가 많아지니 배치 속도가 조금씩 느려지더라고요.

아직 운영에 큰 이슈는 없지만 나중에는 문제가 될 수도 있겠다 싶어 질문드립니다.

  1. 보통 이런 경우에는 어떤 방법으로 속도를 개선 하는지 궁금합니다.

     

  2. 당장 생각 나는 방법이 오래된 날짜의 데이터는 지우는 방법인데

    BATCH_JOB_EXECUTION 의 CREATE_TIME을 기준으로 지우려고 합니다.

    메모리에 JOB_INSTANCE_ID를 저장하지 않고 처리 하려면

    데이터 삭제 순서가 BATCH_JOB_INSTANCE 테이블이 먼저가 되는 상황이 되는데

    외래키를 지우고 배치 프로그램을 운영해도 문제가 되지 않을지 궁금합니다.

    • 쿼리

      DELETE FROM BATCH_JOB_INSTANCE 

       WHERE JOB_INSTANCE_ID IN (SELECT DISTINCT JOB_INSTANCE_ID FROM BATCH_JOB_EXECUTION)

     

진행중인 프로젝트에 바로 사용한다고

시간이 없어 급하게 띄엄띄엄 들어서 못들은 강의가 많습니다.

혹시나 강의에 언급하신 내용이라면 죄송합니다.

 

훌륭한 강의 덕분에 프로젝트 무사히 완료 할 수 있었습니다.

감사합니다.

답변 1

답변을 작성해보세요.

0

스프링배치 스키마는 보통 상태 모니터링이나 배치통계 등으로 사용합니다

그래서 데이터를 아예 삭제하는 것보다는 스케줄러를 사용해서 하루 또는 일주일에 한번씩 데이터를 히스토리용 테이블에 옮겨 놓는 것도 하나의 방법입니다

배치 데이터를 삭제하거나 이동할 때 기준이 되는 조건은 Job 과 Step 그리고 JobParameter 와의 관계를 잘 살펴서 처리해야 합니다

위의 쿼리를 보면 JobInstance 를 삭제하는 것 같은데 어떤 의미인지 좀 더 설명해 줄 수 있을까요?