안녕하세요. 튜닝하다가 질문드립니다
TO-BE
각 이력별로 JobName 단위로 최근 건이 아닌 것을 삭제
배경 : 배치작업이 수행될 때마다 이력테이블에 step, job에 대한 이력정보가 쌓입니다...
이력정보가 많이 쌓이면 이력조회 성능이 저하되어 lastcount값(30000)이 입력되어 지난 30000건을 삭제하고 최근것만 남기는
쿼리입니다..
--
(SELECT A.JOB_NAME,
B.JOB_EXECUTION_ID,
ROW_NUMBER() OVER(PARTITION BY A.JOB_NAME ORDER BY B.CREATE_TIME DESC) AS LATEST
FROM BATCH_JOB_INSTANCE A, BATCH_JOB_EXECUTION B
WHERE A.JOB_INSTANCE_ID = B.JOB_INSTANCE_ID) C
여기서 C.LATEST > #latestCount# 를 먼저 처리하여 건수를 최대한 줄이고 조인하는 것이 효과가 있을듯한데..
혹 더 좋은 방법이 있나요? 고수님들의 조언 부탁드립니다.