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 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1174 현재 이중화 진행중인 db 를 한쪽을 끊고 이관작업이후 이중화를 붙이면 동기화가 문제가 없나요? 1 coolkkm 2017.10.30 376
1173 charset 문의드립니다. 1 투다닥 2019.09.02 376
1172 공백 제외 조건 조회 시 오류? 4 코크 2022.09.15 374
1171 큐브리드 DB 연계관련 오류 코드 재문의 드립니다. 1 file kik 2018.02.14 371
1170 GROUPING 함수 없나요? 2 mon 2020.06.30 370
1169 CUBRID에 로그인 실패 시 잠금정책 설정이 가능한지? 1 sspark 2018.01.11 368
1168 Group_concat 에 대한 질문 4 file staterprograming 2018.02.22 368
1167 큐브리드 시작시 오류 문의 드립니다. 6 file jisu5689 2021.04.15 368
1166 컬럼 정보 수정 방법 3 jeinhe 2022.03.28 367
1165 이중화 관련해서 질문 드립니다. 3 코코코지마 2021.01.20 366
1164 attribute가 AUTO_INCREMENT로 생성됐는지 확인할 수 있는 딕셔너리는 무엇인가요? 3 새옹지마 2023.01.08 365
1163 Cannot coerce value of domain "character varying" to domain "datetime" 에러 질문이요 1 file ddddd 2020.03.30 365
1162 CMT로 마이그레이션시 트리거나, 저장 프로시져는?? 1 덴드로비움 2017.07.06 364
1161 트리거에 여러개의 execute 문을 사용할 수 있는지요? 1 푸르른하늘 2020.10.13 363
1160 케릭터셋 문제입니다. 1 훈입니다. 2020.04.13 362
1159 DB삭제 오류 관련 문의 3 file sklee 2019.05.02 361
1158 [Cubrid 9.3] POSIX ERROR 문의 1 vasconcelos 2018.09.06 360
1157 CUBRID IP차단기능 관련 질문드립니다. 2 sspark 2018.01.09 359
1156 오류번호 -677 3 bchlim 2020.08.11 357
1155 Windows 10 에서 CUBRIDManager-10.1.0.0005-windows-x64와 CUBRID-Windows-x64-10.1-latest 설치후 매니저 실행하고 연결이름을 test 입력시 연결오류발생 2 file simon 2019.01.03 356
Board Pagination Prev 1 ... 137 138 139 140 141 142 143 144 145 146 ... 200 Next
/ 200

Contact Cubrid

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