CDS View를 생성할 때, Join과 Association 간의 차이점을 간단하게 정리한다.
정리
구분 | Join | Association |
데이터 결합 시점 | 즉시 결합 (쿼리 실행 시 무조건 JOIN 발생) | 필요할 때만 결합 (Lazy Loading*) |
쿼리 실행 방식 | 항상 JOIN이 실행됨 | SELECT 시 관련 필드를 조회할 때만 JOIN 발생 |
성능 | JOIN이 많아지면 성능 저하 가능 | 불필요한 JOIN을 방지하여 성능 최적화 가능 |
활용 목적 | 모든 데이터를 즉시 가져올 때 사용 | OData, UI5 등에서 필요한 데이터만 로드할 때 사용 |
사용 예시 | INNER JOIN, LEFT OUTER JOIN 사용 가능 | ASSOCIATION [0..1] to 사용 |
Lazy Loading
Lazy Loading(지연 로딩)은 필요할 때만 데이터를 가져오는 방식이다.
초기에 모든 데이터를 한 번에 불러오지 않고, 실제로 필요한 시점에서 데이터를 로딩하는 것이다.
반대로 Eager Loading(즉시 로딩)이 있으며, 이는 처음부터 모든 데이터를 한 번에 로딩하는 방식이고 Join에 사용되는 방식이다.
CDS View에서 ASSOCIATION을 사용하면 기본적으로 연관된 테이블의 데이터는 가져오지 않는다.
쿼리에서 ASSOCIATION에 포함된 필드를 직접 조회하면 그때 JOIN이 실행된다.
Association 사용 시 데이터 조회 시점
ASSOCIATION을 선언해도 기본적으로는 JOIN이 실행되지 않고 있다가, 연관된 필드를 SELECT할 때만 관련 테이블의 데이터가 조회된다.
- ABAP SELECT 문에서 ASSOCIATION 필드를 요청할 때
- OData에서 $expand 옵션으로 연관 데이터를 요청할 때
- CDS View에서 연관된 필드를 직접 조회할 때
상황에 따라서 필요한 방식을 적용해서 사용하면 된다.
'SAP' 카테고리의 다른 글
[SAP] Screen Status 생성하지 않고 스탠다드 활용하는 법 (0) | 2025.03.20 |
---|---|
[SAP] Public Cloud와 Private Cloud Edition(PCE)의 차이 (0) | 2024.12.17 |
[SAP] SAP Script Recording and Playback 활성화 하는 법 (0) | 2024.11.15 |
[SAP] 자주 쓰는 Standard T-Code 정리 (+ N 유무 차이) (0) | 2024.06.03 |
[SAP] Transaction에 할당된 Role 확인 방법 (0) | 2024.01.10 |
CDS View를 생성할 때, Join과 Association 간의 차이점을 간단하게 정리한다.
정리
구분 | Join | Association |
데이터 결합 시점 | 즉시 결합 (쿼리 실행 시 무조건 JOIN 발생) | 필요할 때만 결합 (Lazy Loading*) |
쿼리 실행 방식 | 항상 JOIN이 실행됨 | SELECT 시 관련 필드를 조회할 때만 JOIN 발생 |
성능 | JOIN이 많아지면 성능 저하 가능 | 불필요한 JOIN을 방지하여 성능 최적화 가능 |
활용 목적 | 모든 데이터를 즉시 가져올 때 사용 | OData, UI5 등에서 필요한 데이터만 로드할 때 사용 |
사용 예시 | INNER JOIN, LEFT OUTER JOIN 사용 가능 | ASSOCIATION [0..1] to 사용 |
Lazy Loading
Lazy Loading(지연 로딩)은 필요할 때만 데이터를 가져오는 방식이다.
초기에 모든 데이터를 한 번에 불러오지 않고, 실제로 필요한 시점에서 데이터를 로딩하는 것이다.
반대로 Eager Loading(즉시 로딩)이 있으며, 이는 처음부터 모든 데이터를 한 번에 로딩하는 방식이고 Join에 사용되는 방식이다.
CDS View에서 ASSOCIATION을 사용하면 기본적으로 연관된 테이블의 데이터는 가져오지 않는다.
쿼리에서 ASSOCIATION에 포함된 필드를 직접 조회하면 그때 JOIN이 실행된다.
Association 사용 시 데이터 조회 시점
ASSOCIATION을 선언해도 기본적으로는 JOIN이 실행되지 않고 있다가, 연관된 필드를 SELECT할 때만 관련 테이블의 데이터가 조회된다.
- ABAP SELECT 문에서 ASSOCIATION 필드를 요청할 때
- OData에서 $expand 옵션으로 연관 데이터를 요청할 때
- CDS View에서 연관된 필드를 직접 조회할 때
상황에 따라서 필요한 방식을 적용해서 사용하면 된다.
'SAP' 카테고리의 다른 글
[SAP] Screen Status 생성하지 않고 스탠다드 활용하는 법 (0) | 2025.03.20 |
---|---|
[SAP] Public Cloud와 Private Cloud Edition(PCE)의 차이 (0) | 2024.12.17 |
[SAP] SAP Script Recording and Playback 활성화 하는 법 (0) | 2024.11.15 |
[SAP] 자주 쓰는 Standard T-Code 정리 (+ N 유무 차이) (0) | 2024.06.03 |
[SAP] Transaction에 할당된 Role 확인 방법 (0) | 2024.01.10 |