Background Image
제품 여행
2018.12.26 15:18

CUBRID 10의 새로운 기능 "문자열 압축"

조회 수 660 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

CUBRID 10은 새로운 기능이 추가 되었습니다그 중에서 문자열 압축기능이 추가되었습니다.

지금부터 문자열 압축 기능에 대해서 알아보도록 하겠습니다.

 

문자열 압축 기능은 아래의 표와 같습니다.

블로그캡처_1.JPG


CUBRID 문자열 압축은 255byte 이상에서만 실행되고, 압축이 효율적이지 않으면 압축을 실행하지 않습니다.

문자열 압축률이 얼마나 좋은지 테스트하기 위해서 문자열 압축 기능이 없는 CUBRID 9.3 10.1에서 테스트 데이타 10만건을 입력하고, 테이블 크기를 확인하는 방법으로 진행하였습니다.  

케이스 #1”은 중복 되지 않는 문자열 데이타를 입력하고 압축률을 확인하였고, “케이스 #2”는 중복 된 데이타를 입력하고 압축률을 확인하였습니다.


블로그캡처_2.JPG


각 케이스별로 데이타 10만건을 생성한 방법은 아래 표와 같습니다.  

먼저 테스트 데이타 1건을 입력하고, “insert 테이블 select ...” 구문에서 카탈로그 테이블과 카테시안 곱(Cartesian Product)을 활용하여 테스트 데이타를 생성하였습니다.

블로그캡처_3.JPG


위 표의 SQL문으로 데이타 10만건을 입력하고 테이블 크기를 확인하였습다

테이블 크기는 “show heap capacity of 테이블명;” 명령을 실행하고 Num_pages 값을 확인하였고, 결과는 아래 표와 같습니다.

블로그캡처_4.JPG


케이스 #1”의 중복되지 않은 문자열의 데이타를 입력하고 확인 한 “Num_pages”의 결과는 동일하였습니다.  

이유는 입력되는 데이타의 압축결과가 원래값과 동일하기 때문에 압축을 실행하지 않았고, Data도 원본 데이타를 입력했기 때문에 동일한 것입니다.

케이스 #2” 에서는 중복 된 데이타가 입력되어 압축률이 938% 로 처리되었습니다.

 

CUBRID 10 문자열 압축기능에서 압축 된 문자열을 푸는 시점은 데이터베이스에서 읽을 때 압축된 문자열을 해제한다고 하였습니다.  

그러면 데이타 추출 하는 시간은 얼마나 차이가 날까?”라는 의문점이 생길 것입니다.

위 질문에 대한 결과를 얻기 위해서 아래와 같은 스크립트를 작성하고, 테스트를 진행하였습니다.


아래 스크립트는, 실행할 SQL문을 파라미터로 받아서 SQL문을 실행하고 결과를 resut_sql.txt에 기록하고, 실행 전 시간에서 완료시간을 뺀 값을 출력하는 스크립트입니다.

블로그캡처_5.JPG


스크립트는 아래와 같이 실행하였습니다.


블로그캡처_5_1.JPG


사내 테스트서버 장비에서의 50만건 추출에 대한 소요시간은 아래와 같이 측정되었습니다.  

아래의 측정시간은 절대적인 수치는 아니며 장비의 성능, OS설정, 스토리지 IO 성능 등에 따라서 변경 될 수 있습니다.


블로그캡처_6.JPG



CUBRID 9.3에서 10만건의 데이타를 추출하는데 소요된 시간은 1.04317초 였고, 10.10.848578초 였습니다.  

시간차이는 -0.194592초였습니다

, 압축된 501byte 데이타 10만건에 대해서 압축을 해제하여 추출하는데 처리속도가 -0.19초 빠르게 나타난 것입니다.

 

문자열 압축에 대한 테스트 결과를 정리하면, DISK에 저장 되는 용량은 9.3에서는 57 MB( 3,704 * 페이지크기 16K )였고

10.1에서는 5 MB( 357 * 페이지크기 16K )를 사용 하였습니다.  

처리시간은 0.19초 빨라졌습니다.

 

CUBRID 10에서 추가 된 문자열 압축기능은 디스크 사용량은 줄이고, 처리성능은 높아졌습니다.




List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
124 알려요~ 오픈소스 CMS XE3, CUBRID 연동 지원 file 정병주 2017.11.03 2146 0
123 나머지... 연말에도 기술지원은 쉬지 않는다.~!! file janus 2010.01.21 39098 0
122 여러분과 함께한 큐브리드 돌잔치! 1 file 멜라니 2009.12.30 45318 0
121 알려요~ 아이폰용 CUBRID 애플리케이션 file 정병주 2010.02.05 47949 0
120 나머지... 실패하지 않는 마이그레이션을 위해서 고려해야 될 사항 김창휘 2018.12.31 7308 0
119 신밧드의 모험? 신버그의 모험! 3 file 시난 2009.10.06 38866 0
118 나머지... 스티브 잡스의 교훈 3 1 file CUBRID_DEV 2009.06.15 66760 0
117 오픈소스 이야기 손쉬운 PHP 확장 기능 개발 김병욱 2017.12.08 2920 0
116 시장 살펴보기 서버 시장의 변화 - x86 Up, Unix Down file 정병주 2017.09.15 1825 0
115 나머지... 분산 시스템으로서의 DBMS, 그리고 큐브리드 조성룡 2019.03.29 1358 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 16 Next
/ 16

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales