High Water Mark

카테고리 없음 2010. 2. 4. 17:11

관계형 데이터베이스는 대용량의 데이터를 효율적으로 관리할 수 있는 기능을 제공한다. 따라서 데이터가 많이 저장되는 것을 우려하여 과거 데이터를 삭제하고자 하는 것은 잘못된 생각이다. 과거의 데이터는 그것을 비록 현시점에서 필요하지 않더라도 향후 DW, CRM과 같은 분석작업에 반드시 필요한 정보가 된다. 또한 과거 데이터를 이관 작업을 할 때도 이력이 함께 존재해야 정확한 데이터를 만들 수 있게 된다. 따라서 가능한 삭제가 아닌 이력으로써 종료일자를 가져가던가 아니면 사용여부와 같은 필드를 만들어 삭제를 하지 않는다.

삭제가 빈번하게 발생하는 경우 테이블의 High Water Mark가 다시 내려오지 않기 때문에 전체 테이블을 스캔하는 작업 시 성능상의 문제가 발생한다. 따라서 작업상의 명백한 오류로 인하여 발생한 데이터가 아닌 이상에는 과거데이터를 삭제하지 않는 것으로 한다.



 



SW 아키텍쳐 교재에서 샘플로 나와있는 문서에서 찾았다.
데이터를 삭제해봐야 성능이 좋아지지 않는 다는 말을 해도 믿지 않는 사람들에게 이 이야기를 해주면 믿을까?
사실 믿을 것이라고 기대하지 않는다. ^^