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
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 27
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4455
911 같은 서버의 타 데이터베이스의 테이블을 select 하고 싶습니다. 1 미스터비니 2011.02.17 8166
910 like 검색관련 1 secret 박성규 2011.02.16 10
909 right 함수안에 DATE_FORMAT 함수 있을때 문의 1 file 유니콘 2011.02.15 9013
908 큐브리드 매니저 버그 발견 1 file 유니콘 2011.02.15 7366
907 큐브리드 파이썬 드라이브는 어디서 다운받을 수 있나요? 2 까망군 2011.02.15 9659
906 날짜형 관련해서 질문드립니다. 1 박성규 2011.02.13 8993
905 cubrid.jdbc.driver.CUBRIDException: Attempt to access a closed ResultSet. 1 처음큐브리드 2011.02.12 12577
904 skip scan 지원여부 문의 2 풀리야 2011.02.11 7942
903 [컴파일 오류] cas_cci.h", line 38.2: 1506-218 (E) Unknown preprocessing directive #ident. 1 이행복 2011.02.08 9664
902 3.0 에서 3.1 업그레이드문제 5 suejinv 2011.02.08 7053
901 메니저 서비스 실행에 문제가있습니다. 1 SoMa 2011.02.05 12914
900 큐브리드 3.0에서 3.1로 업그레이드시 3 SoMa 2011.02.05 7623
899 우분투 10.10 amd64 사용환경에서 큐브리드 설치에러질문입니다. 2 푸훗 2011.02.03 8834
898 mysql에서 이전에 관한 질문입니다. 1 secret 원설휘 2011.02.01 7
897 index관련 질문입니다. 1 foxman 2011.01.31 8151
896 CUBRID Master start failed 에러... 1 노스 2011.01.29 13076
895 2.1 버전에서 3.1 버전으로 업그레이드시 문제발생했습니다. 도와주세요.. 6 file 양희종 2011.01.29 7894
894 systimestamp 함수로 현재시간을 불러올 경우 에러가 발생합니다. 1 노랑배 2011.01.28 10495
893 큐브리드용 웹보드 문의 5 유니콘 2011.01.27 10190
892 manager 보안 문제가 개선 되었는지요? 1 큐브리드호스팅 2011.01.27 7849
Board Pagination Prev 1 ... 150 151 152 153 154 155 156 157 158 159 ... 200 Next
/ 200

Contact Cubrid

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