구글링 중 해당 코드를 발견해 실습.
대략 250,000건 정도의 데이터가 있는 테이블을 가지고 일괄 SELECT를 해 소요시간을 측정해 보았다.
OPT1. 그냥 SQL.
*&---------------------------------------------------------------------*
*& REPORT ZSQL_TEST
*&---------------------------------------------------------------------*
REPORT ZSQL_TEST.
* OPT 1 - 일반 SQL
SELECT * FROM AFRU INTO TABLE @DATA(LT_ITAB).
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.
결론 : 140배 가량 성능이 개선 되었다!
HANA SQL을 사용시 대부분 4-20배 정도 성능이 개선 된다고들 한다.
SAP ABAP - ALV 수정 사항이 반영되지 않을 때 (0) | 2023.02.20 |
---|---|
SAP ABAP UPCAST, DOWNCAST 개념과 ?=, =의 차이 (0) | 2022.12.22 |
SAP ABAP - CALL DATABASE PROCEDURE 예시 (0) | 2022.12.05 |
ABAP 첨부 파일 업로드 - 기초 1(스탠더드 기능) (0) | 2022.07.11 |
ABAP 메일링 기능 정리 1 - 단순 텍스트 LOOP (0) | 2022.06.13 |