PurgeType 열거형

Visual Studio 2010

SqlCeChangeTracking 클래스의 PurgeTombstoneTableData 메서드 또는 PurgeTransactionSequenceData 메서드를 사용할 때 메타데이터를 제거하는 데 사용할 조건을 지정합니다.

네임스페이스:  System.Data.SqlServerCe
어셈블리:  System.Data.SqlServerCe(System.Data.SqlServerCe.dll)

public enum PurgeType

멤버 이름설명
None이 값은 추적 인프라에서 사용하도록 예약되었으므로 코드에 사용하지 마십시오.
TimeBased메타데이터가 지정된 일 수보다 오래되었는지 여부에 따라 메타데이터를 삭제하도록 지정합니다.
CsnBased메타데이터를 마지막으로 수정하는 트랜잭션의 CSN(커밋 시퀀스 번호)에 따라 메타데이터를 삭제하도록 지정합니다.
Max이 값은 추적 인프라에서 사용하도록 예약되었으므로 코드에 사용하지 마십시오.

시간 기반 제거는 지정된 일 수보다 오래된 메타데이터를 삭제합니다. 예를 들어 추적을 사용하여 동기화를 구현하는 응용 프로그램에서 데이터가 서버나 피어 집합과 동기화된 후에는 추적 데이터가 더 이상 필요하지 않습니다. 응용 프로그램은 특정 일 수(n) 동안만 추적 데이터를 유지하고, 최소 n일 간격으로 서버 또는 피어 집합과 동기화하도록 하는 제한 사항을 사용자에게 적용할 수 있습니다.

CSN 기반 제거는 트랜잭션에서 마지막으로 수정되고 CSN이 지정된 CSN보다 작거나 같은 메타데이터를 삭제합니다. 행과 연결된 CSN은 데이터베이스가 참여한 트랜잭션의 커밋 순서를 나타냅니다. CSN 기반 제거에서 데이터는 시간 순서가 아닌 커밋 순서에 따라 삭제됩니다. 예를 들어 현재 시간을 기준으로 100 트랜잭션 이전에 커밋된 트랜잭션에서 마지막으로 수정한 행은 더 이상 필요하지 않을 수 있습니다.

트랜잭션에서 변경한 내용은 트랜잭션이 커밋된 후에만 응용 프로그램에 표시되므로 CSN 기반 정리가 바람직합니다. 예를 들어 변경 내용 추적에 대해 작성된 알림 응용 프로그램은 데이터를 변경한 트랜잭션이 커밋된 후에만 변경 내용에 대해 게시자에게 알릴 수 있습니다. 응용 프로그램은 마지막 100개의 트랜잭션에 대한 버퍼를 유지하여 구독자가 알림에 응답할 수 있도록 하고 해당 트랜잭션보다 오래된 트랜잭션을 모두 제거할 수 있습니다.

시간 기반 제거는 행의 타임스탬프가 삽입 또는 업데이트 시 할당되므로 CSN 기반 제거와는 다릅니다. 장기 실행 트랜잭션의 경우에는 커밋 시간이 수정된 행의 타임스탬프 값과 차이가 많이 날 수 있습니다. CSN 기반 제거는 트랜잭션이 커밋될 때까지 메타데이터를 삭제하지 않습니다.

표시: