An Efficient Scheme of Deleting All Records of a Table

테이블의 모든 레코드 삭제의 효율적 수행

  • Published : 2001.10.01

Abstract

테이블의 모든 레코드들을 삭제하는 연산과 그 연산을 취소하는 작업은 그 수행에 드는 비용이 매우 크다. 상용 데이타베이스 관리 시스템들은 테이블의 모든 레코드들을 삭제하는 연산을 신속하게 수행하기 위하여 TRUNCATE TABLE문을 제공한다. 그 문을 수행하면 레코드들을 개별적으로 삭제하지 않고 그 화일에 할당된 디스크 공간을 반환하며 그 삭제 연산을 독립된 트랜잭션으로 처리하여 즉시 완료시킨다. 따라서, 그 연산은 일단 실행되고 나면 복귀가 불가능하다. 본 논문은 DELETE문을 WHERE절 없이 사용하는 경우에 대하여 모든 레코드들을 삭제하고자 하는 화일과 동일한 구조를 가지는 하나의 빈(empty)화일을 생성하고 기존 화일과 새로이 생성한 화일 간에 화일 설명자의 내용과 디스크 공간을 교체만 후, 새로이 생성한 화일 자체를 삭제함으로써 로깅 부담을 줄이면서 신속히 모든 레코드들을 삭제하고 그 연산을 복귀할 수 있도록 하는 기법을 제시한다.

Keywords