SAP 데이터 조회 방식의 모든 것: SELECT , SELECT SINGLE 필드, SELECT SINGLE



SAP 데이터 조회 방식의 모든 것: SELECT , SELECT SINGLE 필드, SELECT SINGLE

제가 직접 경험해본 결과로는, SAP ABAP에서는 Open SQL을 통해 데이터를 손쉽게 조회할 수 있는 여러 방법이 존재해요. 특히 SELECT 문의 다양한 방식이 성능에 큰 영향을 미칠 수 있답니다. 이번 글에서는 SELECT 문법과 데이터 조회 방식을 자세히 알아보도록 할게요.

SELECT 문과 그 활용

ABAP의 Open SQL을 사용하면 데이터베이스에서 직접 데이터를 가져올 수 있어요. 이때 가장 기본이 되는 SELECT 문은 간단한 SQL 작성을 가능하게 하고, 다양한 데이터베이스에서 수행할 수 있도록 지원해줍니다. 제가 직접 사용해본 결과, 아래와 같은 다양한 조회 방법이 있답니다.

 

👉 ✅ 상세정보 바로 확인 👈

 



  1. 데이터 조회 방식
  2. SELECT *: 모든 열을 조회합니다.
  3. SELECT SINGLE: 특정 조건에 일치하는 첫 번째 행을 조회합니다.
  4. SELECT SINGLE 필드: 특정 필드만을 조회하여 반환합니다.

이렇게 각 방법은 데이터의 조회 방식과 성능에 차이를 보이므로 상황에 맞는 선택이 중요해요.

SELECT *와 SELECT SINGLE의 차이

아래는 SELECT 문의 기능을 비교한 표예요:

비교 항목 SELECT * SELECT SINGLE 필드 SELECT SINGLE *
조회 대상 모든 컬럼 지정된 일부 컬럼만 조회 모든 컬럼
조회 개수 여러 개의 행 첫 번째 행의 특정 필드 첫 번째 행 전체
성능 저하 가능성 성능이 좋음 덜하지만, 성능 차이 발생 가능
용도 다수의 레코드를 저장 특정 필드만 필요할 때 특정한 한 행 전체 필요할 때
WHERE 조건 선택적 반드시 필요 반드시 필요

이 표를 보면, SELECT * 는 필요 없는 데이터를 포함해 성능이 저하될 수 있는 반면, SELECT SINGLE은 성능 최적화에 유리하다는 점이 보이네요.

SELECT SINGLE의 활용

SELECT SINGLE 문은 특정 조건에 맞는 단일 데이터를 가져오는 데 유용하답니다. 제가 사용해본 예시를 통해 더 알아볼게요.

1. 특정 고객 정보 조회

abap
SELECT SINGLE *
FROM SCUSTOM
INTO gs_cust
WHERE ID = '113344'.

위 코드는 주민번호가 113344인 고객의 모든 정보를 가져오는 예시예요. 이런 식으로 SELECT SINGLE을 활용하면 분명히 성능이 향상되죠.

2. 필드 특정 조회

abap
SELECT SINGLE NAME
FROM SCUSTOM
INTO gv_name
WHERE ID = '113344'.

이 코드는 특정 고객의 이름만 가져온 경우입니다. 필요 없는 데이터는 제외하고 필요한 정보만 얻을 수 있어요.

여러 개의 데이터 조회하기

대량의 데이터를 조회하고 싶다면 여러 가지 방법을 사용해야 해요. 가장 흔하게 사용하는 방법은 다음과 같아요.

1. SELECT LOOP

이 방법은 하나씩 필요한 데이터를 조회할 수 있어요. 아래는 특정 국가에 속한 고객 정보를 출력하는 예시입니다.

“`abap
SELECT NAME EMAIL TELEPHONE
FROM SCUSTOM
INTO CORRESPONDING FIELDS OF gs_cust
WHERE COUNTRY = iv_conty.

WRITE: / gs_cust-name, gs_cust-email, gs_cust-telephone.
ENDSELECT.
“`

2. SELECT INTO TABLE

아래는 전체 테이블을 한 번에 가져오는 방법입니다. 하지만 성능 저하의 가능성이 있어요.

abap
SELECT * FROM SCUSTOM
INTO gs_cust
WHERE COUNTRY = iv_conty.

3. Array Fetch

인터널 테이블을 통해 데이터를 한꺼번에 가져오는 방법은 성능이 좋습니다. 아래는 그 구현 예시입니다.

abap
SELECT NAME EMAIL TELEPHONE
FROM SCUSTOM
INTO CORRESPONDING FIELDS OF TABLE gt_cust
WHERE COUNTRY = iv_conty.

이 방법을 사용하면 필요한 데이터만을 효율적으로 다룰 수 있는 장점이 있답니다.

SQL 활용: 집계 함수와 조건 활용하기

Open SQL을 이용하면 조건에 따라 데이터를 다양하게 집계할 수 있어요. GROUP BY와 HAVING을 활용하는 방법을 알아보겠습니다.

1. GROUP BY 예제

abap
SELECT carrid connid SUM(seataocc)
FROM SFLIGHTS
GROUP BY carrid connid.

이 SELECT 문은 항공사별로 좌석 점유율을 집계하는 방법이에요.

2. HAVING 예제

abap
SELECT carrid connid SUM(seataocc)
FROM SFLIGHTS
GROUP BY carrid connid
HAVING SUM(seataocc) > 100.

HAVING 조건을 통해 더욱 세밀한 필터링이 가능하답니다.

자주 묻는 질문 (FAQ)

SELECT와 SELECT SINGLE의 차이점은 무엇인가요?

SELECT는 여러 개의 행을 조회할 수 있는 반면, SELECT SINGLE은 한 개의 행만 가져온답니다.

OPEN SQL에서 성능을 최적화하려면 어떤 방법이 좋은가요?

필요한 필드만 선택하여 조회하거나, 대량 데이터 조회 시 인터널 테이블을 활용하는 것이 좋아요.

WHERE 절이 없는 SELECT 문은 어떤 경우에 사용하나요?

SELECT *와 같이 모든 행을 조회할 때 사용할 수 있어요.

인터널 테이블을 사용하는 이유는 무엇인가요?

인터널 테이블을 사용하면 데이터를 메모리에 로드하여 반복적으로 사용할 수 있어 성능이 개선돼요.

일반적으로 SAP ABAP에서 데이터 조회는 상황에 맞는 정확한 메소드 선택이 매우 중요해요. 각 데이터 조회 방식의 성격을 잘 이해하고 적절히 활용하면, 성능을 대폭 개선할 수 있답니다.

ABAP과 Open SQL의 다양한 기능을 활용하여 더 나은 프로그래밍 환경을 만들어가요.

키워드: SAP, Open SQL, SELECT, ABAP, SQL, 데이터 조회, 인터널 테이블, 성능 최적화, 집계 함수, 조건문, SELECT SINGLE