Background Image

FORUM

조회 수 9499 추천 수 0 댓글 9
?

단축키

Prev이전 문서

Next다음 문서

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

안녕하세요.

 

큐브리드 사용시 궁금한점이 생겨서 문의드립니다.

 

 

스키마는 동일하고 테이블명만 다른 테이블이 두개가 있습니다.

 

 

A 테이블에는 사용자에게 노출하기 전의 자료가, B 테이블에는 사용자에게 노출하는 자료가 들어 있습니다.

 

관리자는 A, B 테이블을 union all로 묶은 뷰를 사용해서 조회를 하고, 사용자는 B 테이블만 조회를 합니다.

 

 

A 테이블에는 600개의 자료가, B 테이블에는 35만개 정도 자료가 들어 있습니다.

 

 

문제는  A, B 테이블 자료를 인덱스가 걸린 필드를 이용해 갯수를 쿼리해 보면 15ms 씩 걸립니다.

 

그런데 A, B 테이블이 묶여있는 뷰를 조회를 하게 되면 5초 이상 걸립니다.

 

 

관리자는 사용자에게 노출 해야될 자료, 노출하기 전의 자료를 모두 봐야 하기 때문에 뷰를 사용해야 합니다.

 

문제 해결 방안을 문의드립니다.

 

 

감사합니다.

  • ?
    손승일 2011.10.05 08:59

    가능하시면 각 테이블 스키마(인덱스 포함)와 sql, view를 올려주시기 바랍니다.

    둘 사이의 어떤 차이가 있을 것 같은데 설명만으로는 판단하기 어렵네요.
  • ?
    종이 2011.10.05 18:21 SECRET

    "비밀글입니다."

  • ?
    손승일 2011.10.06 06:47

    첨부해주신 질의문과 질문시 테스트한 질의가 동일한가요?

    SELECT COUNT(*)
    FROM ho_article
    WHERE gi > ''
    AND gi LIKE '%중도일보%'

    의 경우 ho_article의 인덱스 스캔을 수행하기는 하지만 '%중도일보%' 실제 인덱스 스캔의 효과를 보지 못하고 해당 인덱스 전체를 스캔합니다.

    따라서 위 질의를 수행함에 있어서 많은 시간이 소요될 것으로 예상됩니다.(제 PC에서 테스트시에 5분이상 기다리다 강제 종료했습니다.)

    view에서도 동일하게 union 중 해당 질의에서 많은 시간이 소요될 것으로 보여 집니다.

    실제 view에 대한 plan을 보더라도 각 각의 질의를 수행할 때와 동일하게 해당 인덱스를 스캔하고 있습니다.

    큐브리드 매니저 질의 편집기를 이용하여 view를 실행하기 전에 '질의 실행 보기' 버튼을 클릭하여 plan을 통해 확인하실 수 있을 것입니다.

    따라서 좀더 검색 범위를 줄일 수 있는 조건이 포함될 수 있는지 여부를 확인해보시기 바랍니다.

  • ?
    종이 2011.10.06 18:17 Files첨부 (1)

    안녕하세요.

     

    제가 테스트 할때에는 길어도 5초 이내에 결과가 나오는데 반해 5분 이상 걸린다고 하셔서

     

    좀전에 테스트한 결과를 캡쳐하여 첨부합니다.

     

    확인 부탁드리겠습니다.

     

    감사합니다.

  • ?
    손승일 2011.10.07 07:55

    제 PC가 문제일가요? 저는 ho_article에 대한 질의를 실행하면 결과가 나오지가 않네요.

    혹시 DB를 재기동했을 때도 동일한 성능을 보이나요? ho_article 테이블이 메모리에 캐싱되어 있는 상태여서 빠른 결과가 나오고 있지는 않을 까 하는 생각이 드네요.

    일단 내부에서 다른 장비로 좀더 확인을 해보도록 하겠습니다.

    우회 방안으로 view를 사용하는 대신 view에서 사용된 union 질의문을 직접사용해보시기 바랍니다.

  • ?
    종이 2011.10.07 17:31

    안녕하세요.

     

    테스트중인 서버는 intel xeon E5506 2.13GHz, 4GB 하드웨어에 가상화 솔루션을 사용하여 2 CPU, 2GB Ram으로 테스트 중으로

    하루에도 몇번씩 껏다가 켰다가를 반복해도 비슷한 결과를 보입니다.

     

    그리고 첨부한 쿼리는 결과가 느리기는 하지만 현재 관리자 페이지에서 사용하고 있는 쿼리입니다.

     

    큐브리드 성능 향상을 위해서라도 이 문제가 해결이 되었으면 합니다.

     

    감사합니다.

  • ?
    정만영 2011.10.08 00:21

    안영하세요.

    문의하신 내용을 window, linux 각각 테스트해 봤지만 view 조회 시간차이가 거의 없습니다. 다만 테이블(ho_article_pre, ho_article, v_ho_article) 검색 순서 따라 차이가 발생하는데 이는 데이터가 메모리에 캐싱되어 있는 상태에 따라 차이 발생할 수 있어 view에 문제가 아닌 것으로 판단 됩니다.

     

  • ?
    샤롱스판 2011.10.14 04:07

    안녕하세요

    주신 데이터와 말씀하신 순서대로 ho_artiicle_pre->ho_article->view 조회 쿼리를 실행하니까 View 에 대한 질의 수행 시간이  상대적으로 더 깁니다. (저는 1.092초) 물론 위 댓글의 다른 분들처럼 view에 먼저 조회 쿼리를 날리면 캐싱된 데이터가 없어서 수 초~분단위로 훨씬 오래 걸릴 것입니다.

     

    큐브리드에서 뷰에 대해 count 질의를 수행하실 때 엔진 내부적으로는 뷰로 정의한 테이블 A에 대해 인덱스를 타서 결과를 추출하고(짧게 걸림) 테이블 B에 대해 인덱스 타서 결과를 추출하고(짧게 걸림) 이 각각의 결과를 UNION ALL하여 이를 순차스캔하면서 카운트를 수행(길게 걸림)하기 때문에 당연히 A,B테이블을 UNION ALL하여 정의한 현재의 뷰에 대한 질의의 실행 시간이 길게 소요되는 것입니다. 이는 다른 DB도 마찬가지로 동작할 것 같네요. 따라서, 이를 고려하시어 카운트 쿼리는 각각 테이블에 수행하고 합산을 하는 것으로 처리하시는 것이 훨씬 빠를 것입니다.

     

     

  • ?
    종이 2011.10.17 20:20

    안녕하세요.

     

    저는 각각의 테이블에 인덱스가 있으면 뷰도 빠른 결과를 낼 수 있울쥴 알았는데, 그런 문제가 있네요.

     

    그러면 쿼리 날리는 방법을 조정해서 성능을 개선하도록 하겠습니다.

     

    답변 감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 1090
1123 컬럼 데이터타입 수정 문의 2 지렸당께 2011.12.05 10528
1122 [초보질문] 텍스트파일을 하나의 TABLE로 입력하고 싶습니다. 2 몰라몰라 2011.12.03 12128
1121 질의자동화 다시한번 여쭤봅니다. 2 ........ 2011.11.30 9245
1120 테이블 생성시 PRIMARY KEY 2개일때 오류 3 서영신 2011.11.23 22953
1119 리눅스 버젼 설치시 demodb 생성이 안됩니다. 3 챨수 2011.11.23 11791
1118 암호/복호화 함수 2 서영신 2011.11.22 15941
1117 like 검색 5 비형여자 2011.11.19 14598
1116 CUBRID 공간데이터 타입 기대해도 되나요? 3 kladess 2011.11.19 10965
1115 말도 안되는 Exception이 발생하는데 대체 뭘까요;; 8 안지민 2011.11.18 47496
1114 이거... 뭐가 문제 일까요? 2 안지민 2011.11.18 27290
1113 전에 조인 관련 비슷한 질문을 올렸는데도 응용을 하지 못해 쿼리를 올립니다. 3 하루야 2011.11.17 12345
1112 큐브리드 매니저, 쿼리브라우저 차이점 문의 1 jyuvenia 2011.11.12 13465
1111 php 모듈 로드가 안됩니다. 3 김우람 2011.11.11 14056
1110 데이타 처리 속도 문제가 있습니다. 2 pdk24 2011.11.11 11689
1109 4.0 최초 설치후 DB 구동 불가 증상 7 reerror 2011.11.10 11174
1108 4.0 마이그레이션 중 스키마 로드 오류 9 reerror 2011.11.10 18001
1107 실행 오류 :-46 (Internal error: slot 3 on page 4231 of volume) 3 file reerror 2011.11.09 12414
1106 증분백업 복구가 잘 않되고 있습니다. 3 reerror 2011.11.08 11399
1105 리눅스서버에 설치된 cubrid삭제후 로그인할때마다 에러메시지가 나옵니다.(11/06=>관련 추가질문 올림) 4 secret 어려운큐브 2011.11.05 13
1104 1대의 서버에 버젼이 다른 cubrid를 설치하려고 합니다. 1 secret 어려운큐브 2011.11.03 14
Board Pagination Prev 1 ... 110 111 112 113 114 115 116 117 118 119 ... 171 Next
/ 171

Contact Cubrid

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