728x90
반응형
SAP ERP의 IDOC 문서 관련된 테이블들이 커지므로 인하여
데이터베이스 공간과 성능 저하에 요인이 될 수 있습니다.
그래서 해당 테이블을 아카이브 하려고 합니다.
SAP TCODE WE11에서 프로그램으로 삭제 가능합니다.
https://apps.support.sap.com/sap/support/knowledge/preview/en/1574016
SAP 프로그램으로 삭제하는 것이 데이터의 참조값들을 확인해서 깔끔하게 삭제할 수 있습니다.
그러나 시간이 오래 걸리는 단점이 있습니다.
그래서 DB에서 삭제하려고 합니다.
TCODE DB15에서 아카이브오브젝트와 테이블관계를 확인해 보면,
IDOC 아카이브 오브젝트에 EDI30C, EDI40, EDIDC, EDIDS 테이블들이
포함되어 있는 것을 확인할 수 있습니다.
이를 기반으로 EDI30C, EDI40, EDIDC,EDIDS 테이블을 직접 삭제하려고 합니다.
DECLARE @TABLE TABLE(MANDT NVARCHAR(3), DOCNUM NVARCHAR(16))
WHILE EXISTS (SELECT TOP 1 MANDT FROM fph.EDIDS WHERE MANDT='100'
AND LOGDAT<'20190101')
BEGIN
INSERT INTO @TABLE
SELECT TOP 10000 MANDT,DOCNUM FROM fph.EDIDS WHERE MANDT='100'
AND LOGDAT<'20190101'
DELETE fph.EDI40
FROM fph.EDI40 AS T
JOIN @TABLE AS S ON T.MANDT=S.MANDT AND T.DOCNUM=S.DOCNUM
DELETE fph.EDIDC
FROM fph.EDIDC AS T
JOIN @TABLE AS S ON T.MANDT=S.MANDT AND T.DOCNUM=S.DOCNUM
DELETE fph.EDIDS
FROM fph.EDIDS AS T
JOIN @TABLE AS S ON T.MANDT=S.MANDT AND T.DOCNUM=S.DOCNUM
DELETE FROM @TABLE
END
로그 날짜 2019년도 01월 01일 이전 데이터를 삭제했습니다.
728x90
반응형
'Archive > DataLifeCycle' 카테고리의 다른 글
SAP 어플리케이션 로그 (BALHDR,BALDT) 삭제 (0) | 2019.07.04 |
---|