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 115
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4474
1240 create db 수행시 오류가 발생합니다. 1 큐브리드초보당 2018.05.14 408
1239 trigger 에서 오라클 처럼 Exception 처리가 가능한가요? 2 ymshim 2021.03.29 408
1238 pk 인덱스가 탔다가 안탔다가 하는 이유가 무엇일까요? 1 file 봉보로봉봉 2020.06.24 408
1237 큐브리드  매니저 버전 문의 3 대청 2021.10.29 407
1236 CUBRID 10.1 LIST Partition 생성 오류 2 종이 2017.11.14 406
1235 CUBRID SHARD 3 randomday 2017.12.13 406
1234 데이터베이스 접근 계정 dba 패스워드 분실로 인한 초기화 방법 알고싶습니다. 1 pjs 2019.10.08 406
1233 오라클 db와 큐브리드db가 dblink로 연결이 가능한지 궁금합니다.. 1 하르 2021.12.22 406
1232 DBA 계정 및 테이블 리스트 문의 1 file 쑤우 2017.12.13 405
1231 각 컬럼의 실제 사이즈 확인 방법 문의 1 큐브리드광 2020.07.07 405
1230 nodejs 사용하여 insert 작업 후에 생성된 ID값을 얻고 싶은데 방법이 있을까요? 3 jslee 2022.02.16 405
1229 도커에서 설치시 접속 문의드립니다. 1 핫산 2023.03.07 404
1228 클라우드 환경에서 cubird server 비정상 동작함. 6 맘마마마 2019.04.19 403
1227 JDBC 연결 시 Exception 발생합니다. 1 붕어생각 2022.01.05 403
1226 보관로그(아카이브로그) 자동삭제 질문 드립니다 1 T군 2020.10.13 402
1225 큐브리드 매니져 erd 볼때 not null 값은 갚 못보나요? 1 덴드로비움 2020.10.06 401
1224 실리콘 맥(M1, ARM) 큐브리드 매니저 지원 문의 1 Devin 2021.12.24 401
1223 cubrid 9.3 dba 암호 분실 2 secret 태리 2016.09.30 398
1222 쿼리로 시스템 파라미터 변경 시 1 봉보로봉봉 2017.07.26 398
1221 Cubrid 9.3 isolation 이슈 문의 2 술먹지마라 2018.08.30 398
Board Pagination Prev 1 ... 134 135 136 137 138 139 140 141 142 143 ... 200 Next
/ 200

Contact Cubrid

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