대용량 데이터를 처리할 때 내가 잘못 알고있는 부분이 있었다. 이를 정정하기 위해 이어서 기록한다.
대용량 데이터를 처리할때 기본적으로 bulk collect와 같은 데이터 리스트를 불러오는 작업이 수반된다.
대용량 처리 시 성능까지 고려하다보니 인덱스 재정렬만 생각하였고, 이를 피하기 위해 반복문과 row 특정을 활용한 대용량 처리를 생각하였으나 접근 방법부터 틀렸다.
일단, 대용량 데이터를 처리하기 위해 로직을 어떻게 구성하느냐를 살펴보아야 한다.
따라서 내가 진행했던 데이터 처리 방식은 리스트를 불러와서 bulk collect로 처리하기 하지만, 성능적인 고려사항이 없었으므로 정확한 데이터 처리에 집중하였다.
하지만 성능을 고려해야 할 경우, 이때는 인덱스 등의 제약사항을 고려해야 하지만 공부한 바에 의하면 생각보다는 복잡하게 생각할 정도는 아닌 것 같았다.
일단 생각을 고치게 된 계기가, DBA께서는 어떻게 생각하고 계실지 여쭤보았는데 그 답변이 내가 너무 복잡하게 고려하고 있다는 생각이 들었기 때문이다.
몇가지 답변을 정리하면
대용량 데이터 처리할 때 생각을 바꿔서 접근하자.
bulk insert1 - https://xggames.tistory.com/m/78
bulk insert2 - https://velog.io/@horang12/2.-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0