상세 컨텐츠

본문 제목

SAP ABAP - HANA SQL 사용 + SQL 성능 비교

ABAP

by Kiroc 2022. 12. 6. 17:31

본문

 

구글링 중 해당 코드를 발견해 실습.

대략 250,000건 정도의 데이터가 있는 테이블을 가지고 일괄 SELECT를 해 소요시간을 측정해 보았다.

 

 

OPT1. 그냥 SQL.

*&---------------------------------------------------------------------*
*& REPORT  ZSQL_TEST 
*&---------------------------------------------------------------------*
REPORT ZSQL_TEST.

* OPT 1 - 일반 SQL
SELECT * FROM AFRU INTO TABLE @DATA(LT_ITAB).

OPT1. 소요시간. SE30에 트랜잭션 코드를 넣고 실행.

 

OPT2. HANA SQL.

하나 스튜디오에서 제공하는 HANA SQLD을 SAP GUI를 통해 구현하는 방법으로

SQL을 스트링으로 만들어 CL_HDB_SQL_EXECUTOR에 넣음 된다.

 

*&---------------------------------------------------------------------*
*& REPORT  ZSQL_TEST 
*&---------------------------------------------------------------------*
REPORT ZSQL_TEST.

* OPT 1 - 일반 SQL
*SELECT * FROM AFRU INTO TABLE @DATA(LT_ITAB).

* OPT 2 - HANA SQL
DATA : LO_HDB_SQL TYPE REF TO CL_HDB_SQL_EXECUTOR,
LO_DBSYS TYPE REF TO CL_DB6_SYS.

LO_DBSYS = CL_DB6_SYS=>GET_SYS_REF( EXPORTING SYSTEM_ID = SY-SYSID ).
LO_HDB_SQL ?= CL_HDB_SQL_EXECUTOR=>GET_INSTANCE( LO_DBSYS ).

TRY.     
  DATA(LV_SQL) = | SELECT * FROM AFRU INTO TABLE @DATA(LT_ITAB). |.     
  LO_HDB_SQL->EXEC_QUERY_DYN(     
       EXPORTING IM_SYSTEM = LO_DBSYS     
                             IM_STATEMENT = LV_SQL     
       IMPORTING EX_STRUCTDESCR = DATA(LO_STRUCT)     
                            EX_RESULT_REF = DATA(LO_REF)     ).   

CATCH CX_ROOT INTO DATA(LO_XREF).     
  MESSAGE S000(메세지클래스).
ENDTRY.

 

OPT2. 소요 시간. SE30에 트랜잭션 코드를 넣고 실행.

 

결론 : 140배 가량 성능이 개선 되었다!

HANA SQL을 사용시 대부분 4-20배 정도 성능이 개선 된다고들 한다.

관련글 더보기