ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Open SQL & Native SQL] SQL else
    SAP/Abap 2022. 1. 14. 12:38

    [Open SQL 실행 프로그램]

    REPORT ZA03_20.
    
    PARAMETERS : p_sql(255) TYPE c.
    
    DATA : go_sql TYPE REF TO cl_sql_statement,
           gv_sql TYPE string,
           gd_ret TYPE i.
    
    CREATE OBJECT go_sql.
    gv_sql = p_sql.
    
    TRANSLATE gv_sql TO UPPER CASE.
    
    CALL METHOD go_sql->execute_update
      EXPORTING
        statement      = gv_sql
      RECEIVING
        rows_processed = gd_ret.

    프로그램 실행전
    실행부
    프로그램 실행후

     

    [효율적인 SQL문 작성]

    1) 적중 리스트 최소화

    • SELECT문을 통한 데이터 조회시, WHERE 구문을 통해 적중되는 데이터 리스트를 최소화 해야한다.

     

    2) 전송되는 데이터양 최소화

    • SELECT SQL문은 DB서버에서 SAP서버로 전송되는 양이 최소화되도록 구성되어야 한다.
      • 에스터리스크(*) 사용 자제
      • UPTO n ROWS 사용

     

    3) LOOP 소요비용 최소화

    • Single line 처리 대신 Several line 처리가 효율적이다. 즉, 개별 work area 사용보다 internal table 사용이 효율적이다.
    • Nested SELECT 구문 사용 자제
      • INNER JOIN, FOR ALL ENTRIES, Subquery 구문이 효율적이다.

     

    4) 검색비용 최소화

    • INDEX를 활용하는 SQL문을 구성해야하고, OR연산자 대신 AND와 EQ연산자를 사용해야한다.

     

    5) 데이터베이스 부담 제거

    • 트랜잭션이 자주 발생하지 않는 테이블, 즉 마스터 성격의 테이블은 버퍼링 설정을 하는것이 효율적이다.
    • ORDER BY구문보다 SORT구문이 효율적이다.

     

    6) 인덱스에 사용된 필드 모두 기술

    • 인덱스는 SQL구문에 가장 큰 성능적 영향을 미치므로 가급적 인덱스로 구성된 필드를 사용하는것이 효율적이다.
      • 특정 테이블의 인덱스가 (carrid, connid, fldate)라면 carrid 값을 모르더라도 빈값을 사용하는것이 효율적이다.

     

    7) 정렬작업은 Application Server에서 실행

    • SQL문의 ORDER BY를 통한 정렬보다 Application Server의 테이블 SORT기능이 더 효율적이다.

    'SAP > Abap' 카테고리의 다른 글

    [Modularization] Subroutine  (0) 2022.01.17
    [Open SQL & Native SQL] Native SQL  (0) 2022.01.14
    [Open SQL & Native SQL] INSERT & UPDATE & DELETE & MODIFY  (0) 2022.01.14
    [Open SQL & Native SQL] SELECT  (0) 2022.01.12
    [Open SQL & Native SQL] Overview  (0) 2022.01.11
Designed by Tistory.