드로우홀릭 더베이직

액세스 DB 파일 용량 문제 문의 드립니다.

2019.08.26 15:56:20 조회 수 24248 추천 수 0

"액세스 2010 무작정 따라하기"를 보면서 한가지 궁금한게 있습니다.

DB 파일 사이즈가 2G로 한정되어 있다고 언급된 부분입니다.

1) DB 데이터를 계속 추가하던 중 파일 사이즈가 2G를 초과하면 어떻게 되나요?

2) 2G 범위 내에서 DB 파일을 사용하고자 하려면 일정 용량 도달시 가장 예전 데이터들을 순차적으로 삭제하면 용량이 지정한 크기 내에서 유지되게 할 수 있는 방법이 있나요?


액세스 DB 파일에 데이터 추가를 원격으로 해보려고 합니다. 원격의 어플리케이션에서 데이터를 수집 후 수집된 데이터를 DB 파일에 추가해 보려고 합니다. 

로컬 DB PC에서는 액세스를 통해서 관련 데이터를 조회하고 보고서 출력 등을 하려고 합니다.


책에서는 별도의 SQL 서버를 구매해서 사용하면 용량 제한에 대한 문제는 신경쓸 필요가 없다고 하셨는데 우선은 액세스 만을 사용해서 2G 범주 내에서 DB 데이터를 지속적으로 관리해보고 싶습니다.

그러던 중 DB 사이즈가 일정 용량 초과할 때 신규 데이터를 삽입하면서 가장 오래된 데이터를 하나씩 삭제하는 방법이 가능하지 않을까라는 생각이 들었습니다.

이렇게 하려면 데이터를 DB에 추가할 때마다 DB 사이즈를 체크할 함수(혹은 기능)이 필요하고 가장 오래된 데이터를 삭제할 수 있는 기능이 필요할 것 같은데 이런 방법이 가능할까요?



profile

돌직구

2019.08.27 00:28:08
*.165.242.137

재미있는 질문이네요.

결론은, 그렇게 꽉 맞춰서 사용하지 마시라는 것.

그리고, 2GB라는 것은 꽤 큰 용량이라는 것입니다.


1. 2GB 용량을 초과하면, 잘 기억나지는 않습니다만.. '묘한' 오류가 납니다. 그리고 데이터 편집/추가 같은 것이 되지 않죠.

2. DB 파일에 대한 이해가 필요합니다. DB 파일은 지운다고 크기가 줄어들지 않습니다. 다음 링크를 참고해 보세요.

http://www.td21.com/kb/499


2GB라는 데이터는.. 필드구성에 따라 다르지만.. 수백만~수천만 건의 레코드가 될 수도 있습니다.

정말 이 정도 데이터가 필요하신건가요? 그냥 걱정부터 하시는 것 아니고요?
(워낙 그런 분들이 많아서.. ^^)


말씀하신 방법(오래된 데이터 삭제)이 불가능한 것은 아닙니다만..

아무도 그렇게 사용하지 않습니다.

왜 그런 방법에 골머리를 써야 할까요?


그리고 위에 링크 보면 아시겠지만, DB 파일은 계속 커집니다. 그리고 용량을 줄일 때는, 단독 모드로 열어야 합니다.

그 이야기만 보더라도 DB에 추가할 때마다 지우고 용량을 줄인다는 것이 별로 바람직하지 않다는 것을 알 수 있을 겁니다.

바남풍

2019.08.27 11:30:59
*.36.62.115

답변 감사드립니다.

협력사 측에서 이와 같은 문의가 있었습니다.

해당사에서는 액세스 DB를 사용하기 원하고, 1일 생산되는 데이터량이 수백~수천개 정도 됩니다.

사무용으로 액세스를 사용할 때는 크게 고려을 안해도 될 거 같은데 데이터가 누적되어 추가되면 DB 용량 문제가 대두될 거 같아서 문의 드렸습니다.


링크해 주신 글 잘 봤습니다. 명쾌하게 이해가 되네요^^

profile

돌직구

2019.08.27 17:47:08
*.165.242.137

1일 수천이라..

적지는 않은 수 이네요.

그러나 계산해 보면.. 하루에 5천개로 잡으면.. 1년에 180만건 입니다.

이 정도는 전혀 문제가 없습니다.

10년을 사용해도 1800만건 이잖아요.


여기에 멀티미디어 데이터가 들어가는 것이라면 모르겠으나, 텍스트/숫자로 이루어진 일반적인 DB 데이터라면 전혀 문제가 안 됩니다.


통상 이럴 때, 다음과 같은 방법을 사용합니다.

  1. 데이터 보관을 위한 기간을 정합니다.
  2. 예를 들면, 1년에 1회 정리. 최근 5개년 치는 보유
  3. 이런 개념으로 해 보면, 하루 5천개면 5년에 9,125,000건 입니다.
  4. 900만건을 하나의 테이블에 보관할 수 있는지 판단해야 합니다. (대부분 상관 없을 겁니다.)
  5. 그러면, 테이블이 'Result' 라고 하였을 때, 'ResultArchive1' 테이블을 만듭니다.
  6. 'ResultArchive1' 테이블은 다른 액세스 파일에 만듭니다. 그리고 'Result' 테이블이 있는 파일에 '연결' 합니다.
    (방법을 잘 모르시면, '액세스 연결 테이블' 같은 것으로 검색해 보세요.)
  7. 이렇게 하면 사용자가 보기에는 Result 테이블과 ResultArchive1 테이블이 하나의 파일에 있는 것으로 보입니다.
  8. 그러나 실제로는 다른 파일에 있는 것이죠.
  9. 이렇게 사용하면, 사실상 무제한으로 사용할 수 있습니다.
  10. 1년에 한 번씩만 ResultArchive1 테이블로 데이터를 보내면 되기 때문에, 별 문제도 없죠. (파일 크기 모니터링도 할 필요 없죠. ^^)
  11. 5년이 지나면 ResultArchive2 테이블을 마찬가지 방법으로 다른 파일로 만들면 됩니다.

그래서 액세스 파일의 제한이 파일 당 2GB인데, 사실상은 테이블 당 2GB로 확장해서 사용할 수 있기도 합니다.

바남풍

2019.08.28 10:13:50
*.36.62.115

아. 대단히 감사합니다.
답변에 놀랐습니다.

많은 도움이 될 듯 합니다.

좀더 스터디해서 1차 진행해보도록 하겠습니다. 다시 한번 감사드려요~~~


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31089
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 27404
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 22918


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.