[MS오피스] 액세스 DB 파일 데이터 테이블 분리와 정리 및 용량 최적화 방법
상황
액세스 DB 에 데이터를 쌓다보니 accdb 파일 하나 용량이 1GB 가 넘어 가는 경우도 생겨서 해당 accdb 파일을 복사후 자료 구분에 따라 테이블을 분리하는 작업을 했습니다.
그런데 분명 테이블을 삭제 했음에도 불구하고 accdb 파일 용량이 바로 줄어들지 않더라구요? 그래서 이걸 다시 리프레시 할 수 있는 방법을 찾아 보았습니다.
해결
제가 진행할 작업 순서는 아래와 같습니다.
- 원래 DB 파일(A파일이라고 지칭) 자체의 복사본 생성(B파일이라고 지칭)
- B파일에서 남겨두려고 하는 테이블을 제외한 모든 테이블 삭제
- A파일에서는 B파일에 남겨둔 테이블을 삭제
- 작업 파일에서 A파일에 연결된 경로를 B파일 경로로 수정
이렇게 되면 데이터 마이그레이션이나 기타 작업 필요 없이 간단하게 테이블을 복제, 분리할 수 있겠죠? 아울러 A파일과 B파일 모두 용량 감소 효과가 날 것이라고 생각했습니다.
위 순서대로 작업을 진행할 파일을 먼저 보시면,
용량이 어휴.. 이러다보니 데이터가 꼬이는지 막 문제도 생기고 난리도 아니더라구요.
그래서 일단 복사본을 만들고 테이블 분리를 위해 복사본에서는 필요없는 테이블을 지워 보았습니다.
네, 테이블을 지웠음에도 불구하고 파일 용량이 줄어들지 않네요. 참 이상하죠?
그런데 여기서 한 가지 추가 작업을 해줘야 합니다.
액세스 상단의 리본 메뉴 중 데이터베이스 도구가 보이는데 해당 탭을 클릭해보면, 데이터베이스 압축 및 복구 버튼이 있습니다.
이 버튼을 눌러주면 잠깐 동안 액세스가 백그라운드로 작업을 진행하고 그 작업이 끝나고 나면?
네, 용량이 굉장히 많이 줄어 들었습니다. 극적인 효과를 보기 위해 가장 데이터가 많은 테이블을 삭제 해보았네요.
어쨌든 이렇게 작업하니 한결 가벼워진 액세스 DB 파일을 사용할 수 있게 되었습니다. 아주 개운한 기분이 듭니다.
MS 오피스 고객지원을 찾아 보니 “데이터베이스 압축 및 복구” 기능과 관련하여 아래와 같은 문서가 있었습니다.
- 압축 및 복구 명령으로 데이터베이스 파일 문제 방지 및 해결, 마이크로소프트 고객 지원
해당 페이지에서 중요한 내용 몇 가지를 요약 하자면,
- 데이터베이스 파일의 크기가 커지면 성능 저하, 손상이 발생할 수 있음
- 액세스는 다양한 작업을 수행하기 위해 숨겨진 임시 개체를 만들고 저장하며, 그렇게 만들어진 임시 개체는 더이상 사용되지 않을 때도 공간을 차지하고 있음
- 데이터베이스의 데이터를 삭제 하더라도 그 데이터 보관을 위해 사용된 공간은 회수 되지 않음
- 압축 및 복원 기능은 실제 데이터를 압축하지는 않으며, 더이상 필요가 없는 공간을 회수하고 오류가 발생한 부분을 복구하여 사용 성능을 향상 시킬 수 있음
- 압축 및 복원은 자동 또는 수동으로 실행 할 수 있음
위 내용을 보니 데이터 또는 테이블 자체를 삭제해도 파일 용량이 줄어들지 않는 것이 확실했네요.
자주 해당 기능을 이용해야겠습니다.
끝.