SQL과 ABAP 프로그램 중 무엇을 사용해야 할까?
조건을 추가하는 작업에서 SQL과 ABAP 프로그램 중 어느 쪽이 더 나은 성능을 보일지 고민되는 경우가 많습니다. 하지만 처리해야 할 데이터가 약 500건 수준으로 적다면, 두 방식 사이에 유의미한 성능 차이는 발생하지 않습니다. 따라서 개발 환경이나 코드 가독성 등 프로젝트 상황에 맞춰 편한 쪽을 자유롭게 선택하면 됩니다.
ABAP 코드 예시
예를 들어, 내부 테이블에서 특정 조건을 만족하는 레코드 수를 세고 싶다면 다음과 같이 ABAP 코드를 작성할 수 있습니다.
LOOP AT lt_table TRANSPORTING NO FIELDS WHERE exp > 5.
ADD 1 TO lt_counter.
ENDLOOP.
코드 설명
- TRANSPORTING NO FIELDS: 조건을 만족하는 행의 데이터를 작업 영역(work area)으로 옮기지 않고 루프만 수행합니다. 단순히 레코드 개수를 셀 때 불필요한 데이터 복사를 줄여 주므로 효율적입니다.
- WHERE exp > 5: 필드
exp의 값이 5보다 큰 행만 루프의 대상으로 한정합니다. - ADD 1 TO lt_counter: 조건을 만족할 때마다 카운터 변수를 1씩 증가시켜, 루프 종료 후 조건에 맞는 레코드의 총 개수를 구할 수 있습니다.
정리
소량의 데이터(500건 내외)를 다룰 때는 SQL과 ABAP 어느 쪽을 사용해도 성능 면에서 큰 차이가 없습니다. 다만 데이터 건수가 수만~수백만 건 규모로 늘어난다면 데이터베이스 레벨에서 처리하는 SQL 쪽이 일반적으로 유리합니다. 따라서 실무에서는 데이터 크기를 기준으로 처리 방식을 선택하는 것이 좋은 습관입니다.