반복계 성능 <<< 포장계 성능
SQL 실행의 오버헤드
SQL 실행 과정:
전처리
SQL 구문을 네트워크로 전송
데이터베이스 연결
SQL 구문 파스
SQL 구문의 실행 계획 생성 또는 평가
후처리
병렬 분산 어려움
반복계는 반복 1회마다의 처리를 굉장히 단순화
→ 따라서 리소스를 분산해서 병렬 처리하는 최적화가 안 됨
→ CPU의 멀티 코어로 분산 처리를 할 수 없는 것은 물론 저장소의 분산 효율이 낮음
데이터베이스 서버 저장소는 대부분 RAID 디스크로 구성되어 I/O 부하를 분산
→ 하지만 반복계에서 실행하는 SQL 구문은 대부분 단순해서 1회의 SQL 구문이 접근하는 데이터양이 적으므로, I/O 병렬화 어려움
DB의 진화로 인한 혜택 X
DBMS의 업데이트 목적은 **'대규모 데이터를 다루는 복잡한 SQL 구문'**을 빠르게 하려는 것.
→ 단순한 SQL 구문과 같은 '가벼운' 처리를 빠르게 만드는 것은 중요X.
→ So, 반복계는 미들웨어 또는 하드웨어의 진화에 따른 혜택을 거의 받을 수 없음
반복계를 포장계로 다시 작성
: 어플리케이션 수정. 실제로 잘 쓰이지 않음
각각의 SQL을 빠르게 수정
: 반복계에서 사용하는 SQL구문은 너무 단순하여 실제론 튜닝 가능성이 제한됨
다중화 처리
: CPU 또는 디스크와 같은 리소스에 여유가 있고, 처리를 나눌 수 있는 키가 명확하게 정해져 있을 때만 가능
→ 반복계 튜닝은 선택지가 매우 한정적