-
[Open SQL & Native SQL] SQL elseSAP/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