본문 바로가기

Archive/DataLifeCycle

SAP 어플리케이션 로그 (BALHDR,BALDT) 삭제

728x90

사SAP ERP 시스템 운영 시 사이즈가 큰 테이블 중의 하나인 BALDT는 어플리케이션 로그 테이블입니다.

해당 테이블을 주기적으로 삭제해서 일정한 사이즈를 관리할 수 있습니다.

 

데이터베이스에서 확인했을 때 현재 데이터의 건수가 약 20억건 정도 되네요.

플리케이션 로그 삭제 프로그램은 SBAL_DELETE 입니다.

만료일을 관리할 경우 "만료일이 된 로그만" 삭제하시면 되고

만료일을 관리하지 않을 경우에는 특정 기간값을 주고 삭제하시면 됩니다.

 

삭제 실행 시 수행되는 쿼리는 아래와 같습니다.

SELECT "MANDANT" AS c ,"LOGNUMBER" AS c ,"OBJECT" AS c 
,"SUBOBJECT" AS c ,"EXTNUMBER" AS c 
,"ALDATE" AS c ,"ALTIME" AS c ,"ALUSER" AS c ,"ALTCODE" AS c 
,"ALPROG" AS c ,"ALMODE" AS c ,"ALTEXT" AS c ,"USEREXITP" AS c 
,"USEREXITF" AS c ,"PROBCLASS" AS c ,"ALDATE_DEL" AS c ,"DEL_BEFORE" AS c 
,"ALSTATE" AS c ,"USEREXITT" AS c ,"ALCHDATE" AS c ,"ALCHTIME" AS c 
,"ALCHUSER" AS c ,"LOG_HANDLE" AS c ,"TABNAME" AS c ,"MSG_CNT_AL" AS c 
,"MSG_CNT_A" AS c ,"MSG_CNT_E" AS c ,"MSG_CNT_W" AS c ,"MSG_CNT_I" AS c 
,"MSG_CNT_S" AS c ,"LAST_MSGNR" AS c ,"TIM_STMP" AS c ,"DB_VERSION" AS c 
,"MSG_CNT_P1" AS c ,"MSG_CNT_P2" AS c ,"MSG_CNT_P3" AS c ,"MSG_CNT_P4" AS c 
,"CLIENT_CRE" AS c ,"CHAR_SIZE" AS c 
FROM "BALHDR" 
WHERE "MANDANT" = @P1 
AND ( "ALDATE" = @P2 AND "ALTIME" >= @P3 OR "ALDATE" > @P4 ) 
AND ( "ALDATE" = @P5 AND "ALTIME" <= @P6 OR "ALDATE" < @P7 ) 
AND ( "ALDATE_DEL" <= @P8 OR "ALDATE_DEL" = @P9 OR "DEL_BEFORE" = @P10 ) 
ORDER BY "MANDANT" ,"LOGNUMBER"  /* R3:SBAL_DELETE:707 T:BALHDR */ 
DELETE
FROM "BALDAT"
WHERE MANDANT = @P1 
AND RELID = @P2 
AND LOG_HANDLE IN ( @P3 , @P4 , @P5 , @P6 ,
@P7 , @P8 , @P9 , @P10 , @P11 , @P12 , @P13 , @P14 , @P15 , @P16 , @P17 , @P18 ,
@P19 , @P20 , @P21 , @P22 , @P23 , @P24 , @P25 , @P26 , @P27 , @P28 , @P29 ,
@P30 , @P31 , @P32 , @P33 , @P34 , @P35 , @P36 , @P37 , @P38 , @P39 , @P40 ,
@P41 , @P42 , @P43 , @P44 , @P45 , @P46 , @P47 , @P48 , @P49 , @P50 , @P51 ,
@P52 , @P53 , @P54 , @P55 , @P56 , @P57 , @P58 , @P59 , @P60 , @P61 , @P62 ,
@P63 , @P64 , @P65 , @P66 , @P67 , @P68 , @P69 , @P70 , @P71 , @P72 , @P73 ,
@P74 , @P75 , @P76 , @P77 , @P78 , @P79 , @P80 , @P81 , @P82 , @P83 , @P84 ,
@P85 , @P86 , @P87 , @P88 , @P89 , @P90 , @P91 , @P92 , @P93 , @P94 , @P95 ,
@P96 , @P97 , @P98 , @P99 , @P100 , @P101 , @P102 )
/* R3:SAPLSBAL_DB_INTERNAL:607 T:BALDAT */

삭제 시에는 Lock이 발생할 수 있으므로 서비스 상황을

모니터링하면서 짧은 주기로 삭제하시는 것이 좋을것 같습니다.

 

728x90

'Archive > DataLifeCycle' 카테고리의 다른 글

SAP DELETE IDOCS ( EDIDS, EDIDC, EDID4 등)  (0) 2019.07.04