아마도 DB를 사용하는 분들의 공통적인 고민이 아닐까 싶네요.
원하시는 기능을 만족할 만한 DB가 있을지???
delete명령을 내리면 레코드가 보이지는 않지만 그 사이즈는 그대로죠.
그래야 undelete를 했을때 복원되지 않겠습니까?
다만 Firebird로 기능을 구현하려면 물리적으로 삭제를 하지 마시고
삭제플래그를 두어서 업데이트를 하는 방법이 있습니다.
한편에서는 계속 insert하고 한편에서는 계속 delete하면서 테이블 사이즈가
늘어나지도 않는 DB는 제가 아는한 없는 거 같습니다.
설명이 되었는지 모르겠군요.
에고 ^^;
크레브 님이 쓰신 글 :
: 답변 감사합니다.
: 하지만 DB의 용도가 24시간 가동 , 초당 30~60개정도의 레코드 추가 등의 기능을
: 만족해야하기 때문에 backup과 restore 처럼 시간이 많이 걸리는 작업은 힘듭니다.
: 기존의 레코드가 삭제된 영역에 새로 추가되는 레코드를 쓰지 않는 이유가 무었이고
: 그 영역에 overwrite 해서 FDB파일이 증가하지 않도록 할 수 있는 방법을 알고 싶습니다.
:
:
: 변영희 님이 쓰신 글 :
: : 레코드를 삭제 한다고 해도 아마 실 데이타는 db에 있을것입니다.
: : 보이지 않을 뿐..
: : backup을 한 후 다시 restore를 해보시면
: : backup 하기전 사이즈 보다 작아지는 것을 확인할수 있습니다.
: :
: : 크레브 님이 쓰신 글 :
: : : 현재 테스트용으로 초당 60여개의 레코드가 추가되고
: : : 1분마다 삭제하는 루틴은 반복적으로 돌리고 있는데요
: : : 레코드는 텍스트 데이터이고 크기는 그리 크지는 않습니다.
: : : 분명히 1분 마다 계속 삭제하기 때문에
: : : 테이블에서 전체 레코드의 개수는 3600개를 넘지안게 유지되고 있습니다.
: : :
: : : 그런데 왜 데이터베이스 파일(*.fdb)의 크기는 계속 증가할까요?
: : :
: : : 임베디드 파이어버드로 쓰고 있고요 데이터베이스파일에는 테이블 하나만 있습니다.
: : :
: : : 레코드를 삭제하면 fdb 파일 크기가 계속 증가하지 않도록 하는 방법이 있습니까?
|