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

    안녕하세요.

     

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

     

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

     

    답변 감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 42
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1714 restart에러 2 life 2016.02.16 6092
1713 error code = -1150 관련 문의 드립니다. 1 큐브 2016.02.16 7544
1712 큐브리드 사용한 데이터 구축 후 db 다운 현상 발생 5 lhb 2016.02.16 8267
1711 테이블 생성 시 디폴드 값 상이 함 문의 1 joke7 2016.02.17 8087
1710 Auto Increment에 대한 질문입니다. 3 너랑이마녀 2016.02.18 8070
1709 Cubrid 사용중 문의사항이 있습니다. 1 secret 도린아빠 2016.02.18 15
1708 테이블 생성시 reuse_oid 옵션 관련 문의 1 종이 2016.02.22 8843
1707 윈도우에 관리모드 localhost 접속 안 됩니다. 2 file 나무친구 2016.02.24 9463
1706 마이그레이션 시 데드락 발생 문의 1 joke7 2016.02.25 8348
1705 HA 사용시 to bo active 상태는 정확히 뭐죠? 2 라면 2016.02.25 8185
1704 Context requires compatible collations 오류 1 소소 2016.02.25 9922
1703 연계 시 에러 문의 1 joke7 2016.03.04 8047
1702 세그먼트 3 file 큐브리드사랑 2016.03.07 6290
1701 Cubrid 9.3 버전 문의 3 secret 일산 2016.03.07 9
1700 Oracle->Cubrid 시 인덱스가 중복되었습니다. 라는 오류가 납니다. 2 secret 바퀴벌레 2016.03.07 6
1699 asp oledb로 연결해서 사용시 1 슈퍼뚱땡이 2016.03.08 8947
1698 백업 및 복원시 테이블 복원 안되는 현상.. 1 말큼 2016.03.11 7159
1697 테이블에 있는 컬럼들중 특정값 있는 컬럼찾기 또수니 2016.03.12 7611
1696 UTF8 로 DB 를 만들고 한글 입력시 한글이 초과하여 들어 갑니다. 3 브이찾기 2016.03.14 9140
1695 인서트 시 IX_LOCK 문의 1 joke7 2016.03.14 7707
Board Pagination Prev 1 ... 110 111 112 113 114 115 116 117 118 119 ... 200 Next
/ 200

Contact Cubrid

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