데이터베이스 병렬 처리(Parallel Processing)란?
AS-IS에서 TO-BE로 변경하는 과정에서 실행과 결과가 같은 쿼리인데 처리시간에서 많은 차이를 보였다.
TO-BE로 개발하기 위해서는 AS-IS의 환경에서 돌리는 것이 아니라 TO-BE에 맞는 환경에서 돌려보고, 테스트를 해봐야했기에 처리시간에 따라 업무 진척도도 달라졌다.
- AS-IS (운영DB) 0.2초
- TO-BE (개발DB) 60초~120초
쿼리가 복잡하기도 했고, ASIS에 동일하게 맞춰야해서 임의로 쿼리를 바꿀 순 없었다. 기존 ASIS의 운영DB와 개발DB는 다르기 때문에 튜닝이 안 되어있다는 얘기를 듣긴 했지만, 튜닝은 바로 할 수도 없고 1주일 정도를 기다려야했다. 2주 안에 개발을 해야했기 때문에 어떻게든 조금이라도 빨리 처리시간을 줄여야 했다.
그 중 한 방법으로 병렬 처리(Parallel Processing)가 있다.
병렬 처리(Parallel Processing)는 여러 작업을 동시에 실행하여 성능을 향상시키는 기술로, 대용량 데이터베이스나 복잡한 쿼리를 효과적으로 처리하는 데 사용된다.
병렬 처리(Parallel Processing) 사용 예시
SELECT /*+ PARALLEL(employee, 4) */ employee_name, salary
FROM employee
WHERE department_id = 123;
이렇게 쿼리에 /*+ PARALLEL(table_name, degree_of_parallelism) */ 형식으로 힌트를 추가하면 데이터베이스 시스템은 해당 테이블을 병렬로 처리하도록 지시하면 된다.
병렬 처리를 사용하면 동일한 작업을 병렬로 수행하기 때문에 데이터 처리 속도가 향상된다. 따라서 쿼리의 실행 시간이 단축되고, 대용량 데이터 처리에 효과적이기도 하다.
병렬 처리(Parallel Processing) 장단점
장점
- 성능 향상: 대용량 데이터 처리 시 빠른 응답과 처리 속도 향상을 제공
- 자원 활용: 다중 코어 프로세서를 활용하여 시스템 자원을 효과적으로 활용
- 확장성: 데이터베이스가 확장 가능한 병렬 아키텍처를 제공하면 더 많은 작업자를 추가하여 확장
단점
- 구현 복잡성: 병렬 처리를 구현하려면 데이터베이스 시스템과 하드웨어에 대한 고려가 필요하며, 잘못 구현하면 성능 저하가 발생할 수 있습니다.
- 자원 요구량: 병렬 처리를 위해서는 추가적인 하드웨어 자원이 필요하므로, 비용이 증가할 수 있습니다.
모든 유형의 작업이 병렬 처리에 적합한 것은 아니며, 작업의 특성에 따라 성능 향상이 미미할 수도 있음.
따라서 병렬 처리는 데이터베이스 성능을 향상시키는 강력한 도구이지만, 신중하게 구현과 관리가 필요하다.