드로우홀릭 더베이직

대용량 해결하기 및 ADP 알아보기

ADP 2014.09.14 14:12:32 조회 수 12640 추천 수 0

01 '대용량'의 정의 알아보기

액세스는 개인 혹은 팀 수준의 데이터베이스를 구축하는데 적절한 도구이기 때문에 대용량 데이터베이스를 다루는데 적합한 도구는 아닐 수 있습니다. 하지만 '대용량'이라는 의미는 아마도 인식하는 범위가 꽤 다양할 것입니다.

어떤 사람은 수만 건의 데이터라고 해도 대용량이라고 합니다. 데이터베이스 전문가라면 최소한 수백만에서 수천만 건의 데이터가 되어야 대용량이라고 할 수 있지 않을까요? 사용자의 대부분은 데이터베이스 전문가가 아닙니다. 따라서 수천만 건, 수억 건의 데이터를 처리할 일은 그리 많지 않을 것입니다. 경우에 따라 수천만 건의 데이터를 액세스로 처리할 수도 있지만 통상 수십만에서 수백만 건의 데이터를 '대용량'이라고 부르기로 합시다.

02 벤치마크할 데이터 미리 보기

데이터 양에 따라 어느 정도 도구를 사용하면 될지, 일종의 가이드를 제공하기 위해 다음과 같이 벤치마크를 하려고 합니다.

  • 엑셀 vs. 액세스 성능 비교 : 44만여 건의 데이터
  • 액세스(mdb) vs. 액세스(adp) 성능 비교 : 260만여 건의 데이터

두 번째 벤치마크에 엑셀도 같이 넣으면 좋겠지만 엑셀은 한 시트에 260만 행의 데이터를 저장할 수 없기 때문에 넣지 않았습니다.

'액세스(mdb)'와 '액세스(adp)'는 무엇일까요? 우리가 일반적으로 알고 있는 액세스가 바로 '액세스(mdb)'입니다. '액세스(mdb)'는 데이터베이스 파일 크기가 2GB를 넘지 못하는 제한을 가지고 있습니다. '액세스(adp)'는 '액세스(mdb)'의 제약을 깨 버린 도구로, 매우 강력한 대용량 처리 기능을 가지고 있는 새로운 버전입니다.

<Tip> 여기에서 '액세스(mdb)'와 '액세스(accdb)'는 같은 의미입니다.

03 엑셀 vs. 액세스 성능 비교 살펴보기

44만여 건의 데이터를 엑셀과 액세스에 입력하여 다양한 시각으로 비교해 보겠습니다.

데이터 양

액셀과 액세스에 각각 441,364건의 동일한 데이터를 입력하였습니다.

데이터 양: 엑셀    데이터 양: 액세스
데이터 양: 엑셀    데이터 양: 액세스

파일 크기

동일한 데이터를 입력하였음에도 엑셀은 109MB, 액세스는 80MB의 파일 크기를 가집니다.

040.010.010.0110.jpg

메모리 사용량

파일을 연 직후, 'Windows 작업 관리자' 대화상자의 [프로세스] 탭 화면에서 엑셀은 504.4MB, 액세스는 8.8MB의 메모리 사용량이 측정되었습니다.

040.010.010.0130.jpg

필터링

판매금액이 1백만 원 이상인 데이터를 찾는 필터링을 했을 때 엑셀은 결과를 표시하기까지 14초가 소요되었으며 액세스는 필터링 즉시 결과를 표시할 수 있습니다.

필터링: 엑셀    필터링: 액세스
필터링: 엑셀    필터링: 액세스

정렬

주문서번호로 정렬을 했을 때 엑셀은 20분 이상이 소요되었으며 액세스는 2초가 소요되었습니다.

정렬: 엑셀    정렬: 액세스
정렬: 엑셀    정렬: 액세스

성능 비교 차트

엑셀 액세스 성능 비교 차트

성능 비교 정리

대부분의 성능 비교 항목에서 액세스가 훨씬 우세한 것으로 나타났습니다. 다양한 항목에서 크게 차이가 나고 있음을 알 수 있습니다.

작업 / 구분 엑셀 액세스 비고
데이터 양 441,364건
파일 크기 109MB 80MB
메모리 사용량 504.4MB 8.8MB 파일을 연 직후
새 레코드 등록 재계산 작업 수행 재계산하지 않음
필터링 14초 즉시 판매금액이 1백만 원 이상인 데이터
정렬 20분 이상 2초 주문서번호별

04 액세스(mdb) vs. 액세스(adp) 성능 비교 살펴보기

260만여 건의 데이터를 액세스(mdb)와 액세스(adp)에 입력하여 다양한 시각으로 비교해 보겠습니다.

데이터 양

액세스(mdb)와 액세스(adp)에 각각 2,647,981건의 동일한 데이터를 입력하였습니다.

  
액세스(mdb)    액세스(adp)

메모리 사용량

파일을 연 직후, 'Windows 작업 관리자' 대화상자의 [프로세스] 탭 화면에서 액세스(mdb)는 9.068MB, 액세스(adp)는 9.804MB의 메모리 사용량이 측정되었습니다.

액세스(mdb)    액세스(adp)
액세스(mdb)    액세스(adp)

집계 테스트

지점별, 수주일별 집계 쿼리를 만들고 테스트했을 때 액세스(mdb)는 17초, 액세스(adp)는 1초가 소요되었습니다.

  
액세스(mdb)    액세스(adp)

피벗 테이블

지점별, 수주일별 현황 피벗 테이블을 만들 때 액세스(mdb)는 21초, 액세스(adp)는 5초가 소요되었습니다.

  
액세스(mdb)    액세스(adp)

통합 테스트

2004년과 2005년 데이터를 합쳐서 보여주는 쿼리를 만들고 테스트했을 때 액세스(mdb)는 126초, 액세스(adp)는 1초가 소요되었습니다.

  
액세스(mdb)-쿼리    액세스(adp)-쿼리
  
액세스(mdb)-실행 결과    액세스(adp)-실행 결과

성능 비교 차트

성능 비교 차트: mdb vs. adp

성능 비교 정리

대부분의 성능 비교 항목에서 액세스(adp)가 훨씬 우세한 것으로 나타났습니다. 다양한 항목에서 크게 차이가 나고 있음을 알 수 있습니다.

작업 / 구분 액세스(mdb) 엑세스(adp) 비고
데이터 양 2,647,981건
메모리 사용량 9.068MB 9.804MB 파일을 연 직후
집계 테스트 17초 1초 지점별, 수주일별 집계 쿼리
피벗 테이블 21초 5초 지점별, 수주일별 현황
통합 테스트 126초 1초 2004년, 2005년 합쳐서 보여주기

05 ADP의 의미 알아보기

ADP는 'Access Data Projects'의 약자로서, 액세스(mdb)의 장점을 극대화하고 단점을 최소화하는 데이터베이스 운영 및 개발 환경을 말합니다. 액세스(mdb)는 데이터베이스 엔진으로 액세스 엔진을 사용합니다. 액세스(adp)는 데이터베이스 엔진으로 SQL Server를 사용합니다.

앞선 벤치마크에서 알아 본 것처럼, SQL Server의 강력한 성능을 활용하기 때문에 매우 좋은 성능을 발휘합니다. 다음 그림은 액세스(mdb)와 액세스(adp)의 구조를 비교하여 설명한 것입니다.

액세스(mdb)와 액세스(adp)의 데이터 전송 구조
그림: 액세스(mdb)와 액세스(adp)의 데이터 전송 구조

SQL Server를 이용한 데이터베이스 응용 프로그램을 만드는 것은 전문 프로그래머만이 할 수 있는 일이었습니다. 그러나 액세스(adp)를 이용하면, 액세스에 친숙한 사용자가 액세스에서 이용하던 방식과 거의 유사하게 테이블, 쿼리, 폼, 보고서를 만들고 활용할 수 있습니다.

일반적으로 액세스(mdb)는 5~10명이 접속했을 때 쾌적하게 사용할 수 있습니다. 그러나 액세스(adp)는 수백 명의 동시 사용자가 접속하더라도 쾌적하게 사용할 수 있습니다. 또한, 액세스(mdb)는 같은 네트워크에서만 공유할 수 있습니다. 예를 들어, 본사와 지사 사이에 데이터 공유는 불가능합니다. 반면, 액세스(adp)는 인터넷이 연결된 환경이라면 어디에서든 사용할 수 있으며 본사/지사 사이 데이터 공유도 얼마든지 가능합니다.

SQL Server는 라이선스 비용이 필요한 제품이지만 SQL Server Express Edition이라는 무료 버전도 제공합니다. SQL Server Express Edition은 데이터베이스 당 4GB의 용량 제한 등이 있기는 하지만 이미 액세스(mdb)의 제약을 뛰어 넘은 무료 데이터베이스입니다.

다음 표는 액세스(mdb)에 대비한 액세스(adp)의 개선 사항입니다.

구분 액세스(mdb) 엑세스(adp)
데이터 공유 방식 파일 공유 방식: 모든 데이터를 내 PC로 불러온 후 작업하기 때문에 성능이 좋지 못합니다.
인터넷 환경에서의 데이터 공유가 불가능합니다.
Client-Server 방식: 서버에 데이터를 요청하고, 요청 결과만 내 PC에 불러오므로 성능이 좋습니다.
인터넷 환경에서의 데이터 공유가 가능합니다.
쿼리 엔진 대용량(수백만 건 이상) 데이터 처리에 약점을 보입니다. SQL Server 데이터베이스를 이용하므로 대용량(수백만에서 수천만 건 이상) 데이터 처리에도 강점을 보입니다.
데이터 조작 도구 매개변수 쿼리 이외에는 특별한 도구가 없습니다. 뷰(View), 저장 프로시저(Stored Procedure), 함수(Function), 커서(Cursor), 트리거(Trigger) 등의 많은 도구를 적절히 활용할 수 있습니다.
보안 액세스 개체에 보안 권한을 부여하는 방식이기 때문에 보안 권한에 누락이 발생할 수 있습니다. 데이터 자체에 보안 권한을 부여하는 방식이기 때문에 강력한 보안을 설정할 수 있습니다.
그림: 액세스(mdb)에 대비한 액세스(adp)의 개선 사항

06 비교 분석하기

데이터가 적거나 복잡하지 않으면 액세스(mdb)도 괜찮은 선택입니다. 그러나 데이터가 많거나 복잡하고, 접속 사용자가 5명을 넘어간다면 그리 좋지 않습니다.

액세스(adp)의 경우, 수백 명의 동시 접속자도 지원할 수 있습니다. 서버 하드웨어 성능만 뒷받침된다면 100여 명의 동시 접속자도 무리 없이 사용할 수 있습니다.

040.010.010.0350.jpg

TFaccess라는 ADP를 활용한 솔루션이 있습니다. 다음 링크에서 자세한 사항을 알아볼 수 있습니다.
TFaccess 알아보기

TFaccess를 이용하면 테이블, 쿼리, 폼, 보고서 정도를 만들 수 있다면 프로그래밍 지식이 거의 없는 사용자도 권한 관리가 가능한 다중 사용자 데이터베이스 응용 프로그램을 손쉽게 만들 수 있습니다.

ADP에 대한 보다 자세한 사항은 다음 링크를 참고하세요.
ADP 자세히 알아보기

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 액세스-일반 길벗출판사 / 액세스 2013 무작정 따라하기 정오표 돌직구 2014-10-09 59506
공지 액세스-일반 길벗출판사 / 액세스 2010 무작정 따라하기 정오표 file 돌직구 2012-10-26 110751
43 액세스-일반 개체 모델 - Visual Basic Editor file 돌직구 2016-12-26 2008
42 액세스-일반 개체 모델 - Project file 돌직구 2016-12-26 1903
41 액세스-일반 개체 모델 - Visio file 돌직구 2016-12-26 2194
40 액세스-일반 개체 모델 - OWC (Office Web Components) file 돌직구 2016-12-26 2131
39 액세스-일반 개체 모델 - Outlook file 돌직구 2016-12-26 1789
38 액세스-일반 개체 모델 - ADO file 돌직구 2016-12-26 2039
37 액세스-일반 개체 모델 - Office file 돌직구 2016-12-26 1861
36 액세스-일반 개체 모델 - DAO file 돌직구 2016-12-26 2225
35 액세스-일반 개체 모델 - PowerPoint file 돌직구 2016-12-26 2025
34 액세스-일반 개체 모델 - Word file 돌직구 2016-12-26 1992
33 액세스-일반 개체 모델 - Excel file 돌직구 2016-12-26 1941
32 액세스-일반 개체 모델 - Access file 돌직구 2016-12-26 2236
31 IT일반 OO파크, 유출된 암호가 암호화 되었으니 안전? 돌직구 2016-07-26 3511
30 IT일반 (중소기업) 랜섬웨어 예방하기 돌직구 2016-04-27 3649
29 IT일반 검색엔진에게 내 정보 조금만 주기 file 돌직구 2016-03-01 3990
28 액세스-일반 특정 데이터베이스에만 반영되는 메뉴 만들기 file 돌직구 2016-01-17 3786
27 액세스-일반 액세스에서 자주 사용하는 함수 file 돌직구 2015-07-13 8500
26 액세스-일반 '필수' 속성과 '빈 문자열 허용' 속성 알아보기 file 돌직구 2014-11-21 7226
» ADP 대용량 해결하기 및 ADP 알아보기 file 돌직구 2014-09-14 12640


  주소  05854 서울시 송파구 법원로 128 문정 SK V1 C동 1314호 ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2018-서울송파-1565 호
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.