Background Image

FORUM

2009.04.09 05:40

RDB와 ORDB 벤치마크

조회 수 19390 추천 수 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 2020.04.09 4443
1087 [테이블의 하위 페치 중]만 계속 나오면서 DB의 테이블을 보여주지 않고 있습니다. 4 secret 어려운큐브 2011.10.11 12
1086 이미지사진파일 업로드 방법 1 우주와나 2011.10.10 11964
1085 윈도우 64Bit 버전에서 PHP에 Cubrid 모듈 올리는 방법좀 .. 1 삼돌이 2011.10.08 11868
1084 테이블 생성, 삭제, 백업 등이 되지 않습니다. 2 sugarkane 2011.10.06 7635
1083 함수 실행시 한글 깨짐 현상 4 대규 2011.10.05 11849
1082 데이터 베이스 생성이 되지 않습니다.. 1 삼돌이 2011.10.05 8042
1081 쉘스크립트파일이 cron으로는 실행이 되지않습니다. 2 secret 어려운큐브 2011.10.05 10
1080 뷰 테이블 검색 시간에 대해 궁금한점이 있습니다. 9 종이 2011.10.05 9715
1079 콘솔에서 csql로 접속할 때 인코딩 설정은 어떻게 하나요? 3 안지민 2011.09.29 11728
1078 4.0 패치2 는 언제쯤 나오나요? 3 유니콘 2011.09.28 6864
1077 8.4로 업그레이드후 cci_execute 실패 에러 10 천상하늘 2011.09.23 9126
1076 DB 접속실패 ( 7 file psygrapher 2011.09.21 11562
1075 테이블 목록확인 (show tables) 방법 문의 3 mkengnr 2011.09.20 20176
1074 Hibernate로 페이징 처리시 오류발생에 대한 내용입니다. 4 백화요란 2011.09.16 12913
1073 select count 한 개수와 select 한 개수가 다른이유는 뭘까요? 4 file 인경수 2011.09.16 11911
1072 계층적질의 결과물과 조인 시 문제점 2 하루야 2011.09.09 9489
1071 ROW_NUMBER() OVER(PARTITION BY 어떻게..해야 할까요??? 5 초식곰 2011.09.09 26455
1070 Oracle의 stored function/procedure에 대한 질문입니다. 2 배나온천사 2011.09.06 10032
1069 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13916
1068 큐브리드를 시작할수없습니다. 2 SoMa 2011.09.04 9383
Board Pagination Prev 1 ... 141 142 143 144 145 146 147 148 149 150 ... 200 Next
/ 200

Contact Cubrid

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