테이블 클리너

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기2분
  • 테이블 클리너는 오래된 기록을 자동으로 삭제하고 데이터가 기하급수적으로 증가하는 것을 방지합니다.

    테이블 클리너는 기본적으로 시간당 한 번씩 실행되어 테이블에서 오래되었거나 기한이 만료되었거나 원치 않는 기록을 삭제하는 예약된 작업입니다. 테이블 클리너는 테이블이 감당할 수 없는 크기로 증가하는 것을 방지하고 쿼리 성능을 향상시킵니다.

    필터 탐색기에 sys_auto_flush.list 를 입력하여 자동 플러시[sys_auto_flush] 테이블에서 테이블 클리너 규칙 목록을 볼 수 있습니다. 자동 플러시 테이블에는 기본 시스템 테이블과 해당 기록 사용 기간에 대한 규칙이 표시됩니다. 각 규칙에 고유한 조건이 정의되어 있으면 단일 테이블에 대해 여러 규칙이 나타날 수 있습니다.

    삭제되는 기록

    각 테이블 클리너 규칙은 다음을 지정합니다.

    • 대상 테이블(기록 삭제용)입니다.
    • 대상 테이블의 날짜/시간 열에 해당하는 Matchfield 값입니다. 이상적으로 Matchfield 는 레코드가 활성 상태인 기간(예: sys_created_on)을 나타내는 날짜 필드입니다.
    • 삭제가 트리거되는 시기를 결정하는 기간(초 ) 값입니다.
    • 주변 장치 또는 감사 테이블에서 관련 기록을 정리하는 옵션입니다.
    • 삭제되는 기록을 필터링하는 하나 이상의 선택적 조건입니다. 예를 들어 'active = false AND state =closed'인 레코드만 삭제되도록 지정할 수 있습니다.

    Matchfield 날짜가 연령(초) 값보다 더 오래 전인 경우 테이블 클리너 작업이 기록을 삭제합니다.

    느린 규칙 처리

    테이블 클리너 작업이 실행되면 각 테이블 클리너 규칙은 프로세스의 일부로 여러 쿼리를 실행합니다. 규칙의 일치 필드 또는 해당 조건의 상당 부분에 인덱스가 없는 경우 쿼리가 많은 양의 데이터에서 비효율적으로 실행되기 때문에 규칙 처리 속도가 느려질 수 있습니다.

    테이블 클리너 규칙에 완료하는 데 30초 이상 걸리는 쿼리가 있으면 전체 테이블 클리너 작업이 중지됩니다. 기본적으로 테이블 클리너는 2일 동안 기다렸다가 테이블 클리너 작업에 해당 규칙을 다시 포함시키므로 그 동안 중단 없이 테이블 클리너 작업을 실행할 수 있습니다. 시스템 속성을 추가하여 대기 기간을 구성할 수 있습니다. 테이블 클리너 속성 문서를 참조하십시오.

    테이블 클리너 비활성화

    테이블 클리너 사용 안 함 속성을 테이블의 딕셔너리 기록에 추가하여 관리자가 테이블 클리너 규칙을 만들거나 특정 테이블에서 테이블 클리너를 실행하지 못하도록 할 수 있습니다. 일부 내부 시스템 테이블에는 기본적으로 테이블 클리너 사용 안 함 속성이 추가되어 있습니다.

    테이블 클리너 제한사항

    다음 제한 사항에 유의하십시오.

    • 테이블 교대 또는 테이블 확장을 사용하도록 구성된 테이블에는 테이블 클리너가 지원되지 않습니다.
    • 성능은 테이블 크기와 지정한 조건에 따라 달라집니다. 예를 들어 큰 테이블에서 인덱스 없이 사용자 지정 열을 사용하면 성능이 심각하게 저하됩니다. 성능은 삭제할 행 수에 따라서도 달라집니다.
    • 테이블 클리너가 단일 테이블에서 기록을 삭제하는 데 최대 20분이 소요됩니다. 쿼리가 느린 경우 20분 동안 삭제되는 레코드의 양이 적을 수 있습니다.
    • 테이블 클리너는 DBDelete.setWorkflow()를 호출하지 않습니다. 즉 , DBDelete 객체는 workflow=false (false는 Java 부울의 기본값)로 실행되므로 Delete 비즈니스 규칙 및 워크플로우가 트리거되지 않습니다.