[MS오피스] 액세스 DB 파일 데이터 테이블 분리와 정리 및 용량 최적화 방법

folder calendar_month web_traffic 6

상황

액세스 DB 에 데이터를 쌓다보니 accdb 파일 하나 용량이 1GB 가 넘어 가는 경우도 생겨서 해당 accdb 파일을 복사후 자료 구분에 따라 테이블을 분리하는 작업을 했습니다.

그런데 분명 테이블을 삭제 했음에도 불구하고 accdb 파일 용량이 바로 줄어들지 않더라구요? 그래서 이걸 다시 리프레시 할 수 있는 방법을 찾아 보았습니다.

해결

제가 진행할 작업 순서는 아래와 같습니다.

  1. 원래 DB 파일(A파일이라고 지칭) 자체의 복사본 생성(B파일이라고 지칭)
  2. B파일에서 남겨두려고 하는 테이블을 제외한 모든 테이블 삭제
  3. A파일에서는 B파일에 남겨둔 테이블을 삭제
  4. 작업 파일에서 A파일에 연결된 경로를 B파일 경로로 수정

이렇게 되면 데이터 마이그레이션이나 기타 작업 필요 없이 간단하게 테이블을 복제, 분리할 수 있겠죠? 아울러 A파일과 B파일 모두 용량 감소 효과가 날 것이라고 생각했습니다.

위 순서대로 작업을 진행할 파일을 먼저 보시면,

약 800MB 에 육박하는 정리 대상 액세스 파일

용량이 어휴.. 이러다보니 데이터가 꼬이는지 막 문제도 생기고 난리도 아니더라구요.

그래서 일단 복사본을 만들고 테이블 분리를 위해 복사본에서는 필요없는 테이블을 지워 보았습니다.

데이터 테이블 삭제후에도 용량이 줄어들지 않는 액세스 파일

네, 테이블을 지웠음에도 불구하고 파일 용량이 줄어들지 않네요. 참 이상하죠?

그런데 여기서 한 가지 추가 작업을 해줘야 합니다.

액세스 리본 메뉴 중 “데이터베이스 도구”에서 “데이터베이스 압축 및 복구”

액세스 상단의 리본 메뉴 중 데이터베이스 도구가 보이는데 해당 탭을 클릭해보면, 데이터베이스 압축 및 복구 버튼이 있습니다.

이 버튼을 눌러주면 잠깐 동안 액세스가 백그라운드로 작업을 진행하고 그 작업이 끝나고 나면?

“데이터베이스 압축 및 복구” 기능 실행 후 정상화된 액세스 파일 용량

네, 용량이 굉장히 많이 줄어 들었습니다. 극적인 효과를 보기 위해 가장 데이터가 많은 테이블을 삭제 해보았네요.

어쨌든 이렇게 작업하니 한결 가벼워진 액세스 DB 파일을 사용할 수 있게 되었습니다. 아주 개운한 기분이 듭니다.

MS 오피스 고객지원을 찾아 보니 “데이터베이스 압축 및 복구” 기능과 관련하여 아래와 같은 문서가 있었습니다.

해당 페이지에서 중요한 내용 몇 가지를 요약 하자면,

  • 데이터베이스 파일의 크기가 커지면 성능 저하, 손상이 발생할 수 있음
  • 액세스는 다양한 작업을 수행하기 위해 숨겨진 임시 개체를 만들고 저장하며, 그렇게 만들어진 임시 개체는 더이상 사용되지 않을 때도 공간을 차지하고 있음
  • 데이터베이스의 데이터를 삭제 하더라도 그 데이터 보관을 위해 사용된 공간은 회수 되지 않음
  • 압축 및 복원 기능은 실제 데이터를 압축하지는 않으며, 더이상 필요가 없는 공간을 회수하고 오류가 발생한 부분을 복구하여 사용 성능을 향상 시킬 수 있음
  • 압축 및 복원은 자동 또는 수동으로 실행 할 수 있음

위 내용을 보니 데이터 또는 테이블 자체를 삭제해도 파일 용량이 줄어들지 않는 것이 확실했네요.

자주 해당 기능을 이용해야겠습니다.

끝.

댓글 남기기