" Open SQL — DB 독립적
SELECT carrid, connid, price
FROM sflight
WHERE fldate > @sy-datum
ORDER BY price DESCENDING
INTO TABLE @DATA(lt_flights).
2. Native SQL / ADBC — HANA 전용
Native SQL은 ADBC(ABAP Database Connectivity)를 통해 DB 전용 SQL을 직접 실행한다. HANA의 Window Function, SQLScript, 병렬 처리 힌트를 그대로 쓸 수 있어 대용량 집계 병목을 20~40% 줄이는 사례도 있다.
" Native SQL — HANA Window Function
DATA(lo_result) = cl_sql_statement=>execute_query(
`SELECT carrid,
SUM(price) OVER (PARTITION BY carrid) AS total
FROM sflight` ).
lo_result->next( IMPORTING ea_data = DATA(ls_row) ).
선택 기준
이식성이 우선이면 Open SQL, HANA 단독 + 대용량 집계면 Native SQL이다. BTP ABAP Environment에서는 ADBC가 제한되므로 Open SQL + CDS View 조합이 사실상 표준이다. Native SQL 도입 전 다른 DB 마이그레이션 가능성을 팀과 먼저 합의해야 한다.
비교 요약
| 항목 | Open SQL | Native SQL |
|---|---|---|
| DB 이식성 | 완전 | DB 종속 |
| HANA 전용 기능 | 제한 | 완전 |
| BTP ABAP Env | 지원 | 제한 |
핵심 한 줄
BTP라면 Open SQL + CDS, HANA 온프레미스 대용량이라면 Native SQL — 이식성과 성능의 분기점을 먼저 정해라.
댓글 0
아직 댓글이 없습니다.