Background Image

FORUM

2009.04.09 05:40

RDB와 ORDB 벤치마크

조회 수 19088 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

안녕하세요

제목과 같이 CUBRID에서 만들어진 RDB와 ORDB에 대한  성능?(예: 쿼리속도)  테스트를 해보고 싶은데요..

다음과 같이 ORDB 주요 특성에 대해 테스트해보고 싶습니다.  

1. subtype 및 supertype

2. 도메인 type 을 가진 컬럼

3. 컬렉션 객체

제 생각은 다음과 같은 방법으로 시간 측정하면 알 수 있을것 같은데요..

1. 각각의 RDB와 ORDB를  생성한뒤

2. 데이터베이스언로드, 파일에서 가져오기와 같은 벌크업로드로 인스턴스 삽입

3. 단순 추출, 상속 추출 ㅡ 단일 조인, 상속조인 등의 쿼리 시간 측정

질문..

1. 이런 방법으로 테스트 해보면 될까요?

2. 쿼리시 쿼리에 걸리는 정확한 시간은 어떻게 알수 있을까요? 
    질의측정 시간 중 콜드스타트방법은 무엇인가요?  큐브리드에서도 이방법을 사용하는지요?

3.  데이터베이스언로드 및 파일가져오기에서  도메인 type 을 가진 컬럼에 대한 입력은 어떤식으로 해야될까요? 

4. bucky , bord와 같은 방법론이 있는데. 이건 그냥 질의 방법에 대한 방법론 인가요?

전공자가 아니어서 질문이 많습니다.

감사합니다.

  • ?
    남재우 2009.04.09 23:22
    관계형 구조를 가지는 경우에는 로딩(loaddb 이용)시 관계를 형성하기 위한 정보자체가 간단하기 때문에 개체형구조보다는 속도가 빠릅니다. 개체형 구조의 경우 각 레코드와 레코드의 연관관계를 물리적인 정보(예를 들어 데이터베이스 화일명, 화일내 옵셋정보등)를 이용하여 관계에 대한 정보를 기록하기 때문에 순수한 관계형 구조보다는 성능이 떨어집니다.
    질의 수행에 대한 성능 측정은 보통 thinking time, running time, closing time 으로 나누어서 running time 부분만 측정하시는 것이 좋습니다. 즉 하나의 질의에 대하여 여러번 반복수행을 하면서 thinking time으로 초기 10회 정도의 수행시간은 측정에서 제외하고 그후 100회 정도 수행한 시간을 측정하고, 마지막 10회정도 추가 수행하고 이 수행시간은 측정에서는 제외합니다.
    따라서 간단한 응용을 만들어서 응용단에서의 응답시간을 측정하는 것이 좋겠읍니다.
    데이터베이스 로딩시 화일 구조는 저희 운영자 가이드에서 소개를 하고 있으며 간단히 알려드리면 a class에서 b class 를 참조하는 경우 create class b(i int), create class a(r b) 와 같은 구조를 예를 들면 만들어지는 화일은 아래와 같습니다.
    %id b 40
    %id a 41
    %class b (i)
    1: 1
    %class a (r)
    1: @40|1
    의 형태를 가집니다. 이는 a테이블의 첫번째 레코드의 r 컬럼이 b 테이블의 1번째 레코드를 참조하고 있음을 표시합니다.
    여기서 id 는 각 테이블에 대한 중복되지 않는 임의의 ID 값을 부여합니다. 그런다음 a 테이블에서 b테이블을 참조하고 있으므로 a 테이블의 레코드의 필드값 부분에 참조하고 있는 b 테이블의 레코드 정보를 입력합니다. 참조하는 테이블인 b의 ID
    가 40이고 참조하는 레코드가 첫번째 레코드 이므로 @40|1 형태로 필드값 부분을 입력하면 됩니다.
  • ?
    rahmat 2009.04.10 07:34
    답변 감사합니다.

    처음 질의시에만 0.016초 이런 식으로 나오고 

    다음엔 보통  0초 이렇게 나오는데
     
    항상 0.000 단위로 정확하게 볼수 있나요?

    궁금합니다.
  • ?
    2009.04.10 20:50

    1. subtype, supertype
        이 부분은 상속을 의미하는 거겠죠.. 상속의 장점은 뭐니뭐니 해도 재사용이겠지만 현재 메소드를 거의 사용하지 않으므로 성능 상의 장점 보다는 사용의 편의성등에 더 많은 장점이 있을 수 있습니다. 물론 RDB 가 지원하지 않는(CUBRID에서만 제공하는) all, except, only 등의 구문을 사용하여 데이터 접근 범위를 인위적으로 사용자가 제한 할 수 있으므로 성능 측면에서 장점을 가지므로 이 부분을 비교해보는 것도 의미가 있을 것 같네요..
       ex)  create class xoo ( a int);
            create class yoo under xoo ( b int); create class zoo under xoo ( b int);
            select * from all xoo, except yoo;
           
    2. Domain type
       뭐니 뭐니 해도 CUBRID를 포함한 OODB의 가장 큰 장점은 이 개념이겠죠.. 모델링에 대한 장점을 떠나서 성능적으로 조인을 하지 않고도 2개 이상의 테이블에 존재하는 데이터를 추출할 수 있으므로 이부분은 조인과 CUBRID의 path expression 을 비교해보시면 좋을 것 같습니다.

    3. Collection 객체
       CUBRID는 set, multiset, sequence을 지원합니다. Domain Type 과 마찬가지로 1:N 관계 데이터 표현을 지원하여 공간을 절약할 수 있는 측면도 있고 Domain Type 과 마찬가지로 set(OID)를 할 경우 조인을 제거할 수 있으니까, 성능 측면에서는 두번째와 같은 방법으로 비교를 해보면 좋을 것 같습니ㅏㄷ.

    벌크 로드에 대한 비교는 말씀하신 것 처럼 load/unload 를 이용하면 될 것 같은데요 commit 주기등에 따라서 성능이 많이 차이가 나고, OID 참조가 얼마만큼 있는가도 성능에 많은 차이가 있는 것 같네요, 여러가지 조건등으로 시험을 해보시는 것이 좋을 것 같네요.

    덧글에도 있듯이 버퍼링의 정도에 따라서 질의 속도가 달라지겟죠.. 버퍼링의 효과없이 정말로 DISK 에서 Raw 데이터를 가져오는 부분을 포함한 질의 처리 속도를  비교하고자 한다면 매번 질의 수행전에 cache를 강제로 지우고 해보면 될 듯 하네요(리눅스의 경우 % echo 3 > /proc/sys/vm/drop_caches) 하지만 DBMS 에서 버퍼링을 제거하고 성능 측정하는 것이 의미가 있을지는 시험의 목적에 따라 다를 것 같습니다. 버퍼링을 잘하는 가 못하는 가도 DBMS의 기능이라고 생각되니까요

    bucky, bord 등은 우리 나라 모 대학교에서 제안한 DBMS 벤치마킹이 방법론으로 알고 있습니다. 스키마 설계 부터 실제 질의 측정 방법등이 모두 정의되어 있는 것으로 알고 있습니다.

    참고가 많이 되었으면 합니다.

    성능 결과가 나오면 올려주세요


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID를 사용해 보시기 바랍니다!!! file admin 2019.07.31 221
192 안정성 관련 질문 드립니다. 2 kkckc 2009.05.12 15501
191 java.lang.ClassNotFoundException: cubrid.jdbc.dirver.CUBRIDDriver 에러에 관한문의 4 삽질중 2009.05.12 20147
190 한글에 upper함수 적용하면 검색이 안되는 이유? 2 장비맨 2009.05.11 20120
189 [초보질문]function 변환 문의 (oracle -> cubrid) 6 삽질중 2009.05.08 22310
188 큐브리드 개발 환경 구축 문제 1 흐승욱 2009.05.08 12743
187 [초보질문] 타유저 TABLE 생성 가능여부 및 볼륨 데이타 입력 문의 1 삽질중 2009.05.08 13980
186 ODBC 이용 SQLHSTMT 다중으로 사용하는게 불가능한가요 ? 2 ApiClasser 2009.05.04 16418
185 c++ builder 2006 explore 에서 큐브리드 사용법 알려주세요 2 강아지60 2009.05.02 19554
184 에러 코드 질문 드립니다. 1 빵돌이 2009.05.02 19598
183 OLEDB 에서 OID 자동으로 가져오게 하는 방법? 2 서명호 2009.05.01 13312
182 DB 서버 OFF 시 질문입니다. 3 이석희 2009.04.30 12824
181 libncurses.so.5 관련 질문입니다. (cubrid service start 시) 1 exnis 2009.04.29 25984
180 MySQL 의 GROUP_CONCAT 함수에 대응하는 CUBRID 함수가 있는지요? 2 차오이 2009.04.29 27141
179 error while loading shared libraries: libgtk-x11-2.0.so.0 2 공기청정기 2009.04.25 22812
178 OLEDB Driver Error... 4 flypig 2009.04.24 13207
177 inner join update 질문 4 장비맨 2009.04.24 23282
176 평창농업기술정보센터입니다. ^^ 2 secret 바보천사 2009.04.24 13
175 manager service 에러 1 나루토 2009.04.18 12545
174 VisualSQL과 같은 도구를 만들고 있습니다. 1 서명호 2009.04.17 13030
173 DB connect문제 질문입니다. 2 김주현 2009.04.17 14117
Board Pagination Prev 1 ... 139 140 141 142 143 144 145 146 147 148 ... 153 Next
/ 153

Contact Cubrid

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