Background Image

FORUM

조회 수 9715 추천 수 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

    안녕하세요.

     

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

     

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

     

    답변 감사합니다.


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views54
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4461
    read more
  3. 말도 안되는 Exception이 발생하는데 대체 뭘까요;;

    Date2011.11.18 By안지민 Views48216
    Read More
  4. 이거... 뭐가 문제 일까요?

    Date2011.11.18 By안지민 Views27661
    Read More
  5. 전에 조인 관련 비슷한 질문을 올렸는데도 응용을 하지 못해 쿼리를 올립니다.

    Date2011.11.17 By하루야 Views12407
    Read More
  6. 큐브리드 매니저, 쿼리브라우저 차이점 문의

    Date2011.11.12 Byjyuvenia Views13568
    Read More
  7. php 모듈 로드가 안됩니다.

    Date2011.11.11 By김우람 Views14354
    Read More
  8. 데이타 처리 속도 문제가 있습니다.

    Date2011.11.11 Bypdk24 Views11712
    Read More
  9. 4.0 최초 설치후 DB 구동 불가 증상

    Date2011.11.10 Byreerror Views11196
    Read More
  10. 4.0 마이그레이션 중 스키마 로드 오류

    Date2011.11.10 Byreerror Views18171
    Read More
  11. 실행 오류 :-46 (Internal error: slot 3 on page 4231 of volume)

    Date2011.11.09 Byreerror Views26849
    Read More
  12. 증분백업 복구가 잘 않되고 있습니다.

    Date2011.11.08 Byreerror Views11508
    Read More
  13. 리눅스서버에 설치된 cubrid삭제후 로그인할때마다 에러메시지가 나옵니다.(11/06=>관련 추가질문 올림)

    Date2011.11.05 By어려운큐브 Views13
    Read More
  14. 1대의 서버에 버젼이 다른 cubrid를 설치하려고 합니다.

    Date2011.11.03 By어려운큐브 Views14
    Read More
  15. 델파이 ADOStoredProcedure 컴포넌트에서 큐브리드저장함수의 리턴값을 받고싶습니다.

    Date2011.11.03 Bywolf Views21627
    Read More
  16. Stored procedure execute error: 자바 저장프로시저 관련오류입니다.

    Date2011.11.01 Bywolf Views21799
    Read More
  17. 실시간 Insert처리

    Date2011.10.29 By동해아빠 Views12444
    Read More
  18. 큐브리드 버전 선택 문의

    Date2011.10.29 By유니콘 Views36237
    Read More
  19. 페이징과 전체 카운트 쿼리 가져올 수 있도록 해주세요.ㅠㅠ

    Date2011.10.29 By마산이프로 Views30076
    Read More
  20. 질의자동화 관련하여 문의드립니다.

    Date2011.10.28 By........ Views9080
    Read More
  21. 질의 자동화 실행 오류

    Date2011.10.26 Byhoops11 Views8121
    Read More
  22. on duplicate key update 에 대해서..

    Date2011.10.26 By초식곰 Views12970
    Read More
Board Pagination Prev 1 ... 140 141 142 143 144 145 146 147 148 149 ... 200 Next
/ 200

Contact Cubrid

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