일정 용량이상일 때 자동 삭제하는 방법은 없나요??(Data Aging) 0 3 3,358

by 준 [2008.04.21 15:37:59]


데이터가 계속 insert될 때 기간이 지난 데이터들을 자동으로 삭제하는 방법이 없나요??

1. 용량으로 확인해서 삭제하는 방법 또는 일정기간이 지나면 데이터 삭제하는 방법

- 기간으로 삭제할 경우 스케쥴러를 이용해서 하면 될 것 같은데...

스케쥴러 말고 Oracle에서 지원하는 기능이 있는지 궁금합니다.

 

ex) 100Gbyte 짜리 하드디스크가 있으면요  60%정도 차면 자동으로 데이터 삭제하려고 합니다.

아시는 분들 부탁드려요!~^^

by 현 [2008.04.21 22:24:21]
그런 기능이야 스케쥴러를 이용해서 만들면 되긴 하겠지만,
제 생각엔 별 효용은 없어 보입니다.
데이터를 삭제 하면서 기대하는 것은,
엑세스 하는 건수를 줄여서 속도를 보다 좀 더 빠르게 한다거나.
테이블의 물리적은 크기를 줄여서 공간을 확보하는 것일텐데,
단순히 그냥 삭제 한다고 해서 기대만큼 효과가 없어보일 것이기 때문입니다.
테이블의 데이터를 삭제 한다고 하더라도 HWm은 줄어 들지 않을 터이기 때문이지요.
오히려 지워진 부분들을 계속 읽을 것이기 때문에 부분범위처리라던가 하는 것을의 효과를 기대 할 수 없기 때문에 오히려 효율은 더 떨어질 수도 있겠네요.

by 현 [2008.04.21 22:26:03]
뜻이 있는 곳에 길은 있겠지만,
그 길이 우리에게 주는 궁극적인 목표가 무엇인지 파악해 볼 필요는 있을꺼 같구요,
오히려 좋지 않은 결과를 우리에게 준다면 아니 가느니만 못하지 않을까요?

by 준 [2008.04.22 13:57:06]
발생되는 자료가 계속 싸여 디스크가 꽉 차는 것을 방지하고 또 최근 데이타만 가지고 있겠다는 생각입니다.
메모리 DBMS인 TimesTen의 경우 Data Aging이라는 기능이 있거든요!!
3가지 방식이 있는데 첫번째는 디스크의 저장범위를 지정해서 그 범위가 넘으면 오래된 데이터를 대치하는 LRU(Least Recently Used)방식으로 데이터 교체를 하거든요!! 두번째로는 데이터의 생존시간을 정해 데이터 교체 및 디스크 용량을 확보하는 방법이 있습니다. 세번째로는 첫번째와 두번째 방법을 혼합하여 사용하는 것이 있습니다. 지금 하려고 하는 것은 첫번째 방법을 여쭤보는 것입니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입