Background Image

FORUM

조회 수 396 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

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

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Linux
CUBRID Ver.
10.1.3.7765
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

데이터가 다른 DB 가 두 개 있습니다. 


CUBRID 버전은 10.1.3 으로 동일합니다. 


Hibernate 4.3.8-Final 사용중입니다. 


-- 실행한 쿼리 


SELECT count(*) as col_0_0_

FROM discharge discharge0_

CROSS JOIN charge charge1_

CROSS JOIN charge_type chargetype2_

WHERE discharge0_.id=charge1_.id

AND charge1_.charge_type_id=chargetype2_.id

AND chargetype2_.is_media_charge=0

AND discharge0_.discharge_date='2020-9-23 0:0:0.000'

AND discharge0_.proc_branch_id=1;




A DB 에서 실행할 시에는 INDEX 를 올바르게 타고 조회가 됩니다. 

Query Plan:

  NESTED LOOPS (inner join)

    NESTED LOOPS (inner join)

      INDEX SCAN (discharge0_.idx_discharge_01) (key range: discharge0_.discharge_date= ?:1 )

      INDEX SCAN (charge1_.pk_charge) (key range: discharge0_.id=charge1_.id)

    INDEX SCAN (chargetype2_.pk_charge_type) (key range: charge1_.charge_type_id=chargetype2_.id)


  rewritten query: select count(*) from discharge discharge0_ cross join charge charge1_ cross join charge_type chargetype2_ where discharge0_.id=charge1_.id and charge1_.charge_type_id=chargetype2_.id and discharge0_.proc_branch_id= ?:0

 and discharge0_.discharge_date= ?:1  and chargetype2_.is_media_charge= ?:2


Trace Statistics:

  SELECT (time: 0, fetch: 29, ioread: 0)

    SCAN (index: discharge.idx_discharge_01), (btree time: 0, fetch: 6, ioread: 0, readkeys: 1, filteredkeys: 0, rows: 4) (lookup time: 0, rows: 4)

      SCAN (index: charge.pk_charge), (btree time: 0, fetch: 12, ioread: 0, readkeys: 4, filteredkeys: 0, rows: 4) (lookup time: 0, rows: 4)

        SCAN (index: charge_type.pk_charge_type), (btree time: 0, fetch: 8, ioread: 0, readkeys: 4, filteredkeys: 0, rows: 4) (lookup time: 0, rows: 4)


1 row selected. (0.006396 sec) Committed.

1 command(s) successfully processed.




그러나 B DB 에서 실행할 시에는 INDEX 를 타지 않고 조회가 됩니다. 


1 row selected. (142.158127 sec) Committed.


1 command(s) successfully processed.


Trace Statistics:

  SELECT (time: 142150, fetch: 172002917, ioread: 0)

    SCAN (table: charge_type), (heap time: 0, fetch: 5, ioread: 0, readrows: 4, rows: 4)

      SCAN (index: charge.fk_charge_6), (btree time: 7, fetch: 5789, ioread: 0, readkeys: 3, filteredkeys: 0, rows: 5776) (lookup time: 6, rows: 5776)

        SCAN (index: discharge.fk_discharge_2), (btree time: 21134, fetch: 26644688, ioread: 0, readkeys: 5776, filteredkeys: 0, rows: 26598480) (lookup time: 18773, rows: 148)





쿼리에서 생성된 Table 및 PK, FK , INDEX 는 모두 동일한 상황입니다. 


해결할 방법이 있을까요 ? 

 


  • ?
    오명환 2020.12.17 16:56
    해당 테이블의 통계를 재 수집한 후에 다시 한번 확인해보시기 바랍니다.

    통계 수집하는 방법은 매뉴얼(https://www.cubrid.org/manual/ko/10.1/sql/tuning.html)을 참조하시면 됩니다.
    수집하실때 sample을 사용하지 마시고, with fullscan을 사용하셔서 하세요.
  • ?
    Rega 2020.12.21 10:49
    답변 감사드립니다. 통계 재수집후 진행토록 해보겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 65
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4465
3839 C++(MFC 아님)에서 프로그래밍 작성을 하려면 어떤것을 사용해야 하나요? 6 나동호 2009.03.24 20053
3838 C-API 매뉴얼 위치요? 1 그래너 2010.01.11 9869
3837 C-API 접속 관련 CUBRID 2008 R4.3 버전에서 변경사항이 있는지 질문입니다. 2 Psionic 2012.12.12 7399
3836 C/C++ 지원하는 Connection Pool API 는 없나요? 2 tekkal 2009.02.03 21009
3835 CAN NOT COMMUNICATE WITH BROKER / 1 폭스공이삼 2022.02.10 601
3834 CCI API 에서 #pragma pack(push,1) 오류 2 David Kang 2009.08.25 10628
3833 CCI API 에서 IRowset 기능 1 David Kang 2009.08.24 8112
3832 CCI API 에서 LNK 2019문제가 계속 발생합니다 1 poipoi 2014.05.22 10577
3831 CCI API가 Thread Safe 한가요? 3 nimbus89 2012.09.04 7284
3830 CCI API로 DB Insert 구현 시 JDBC 구현에 비해 속도가 떨어지는 문제 2 nimbus89 2012.08.17 7962
3829 CCI API로 구현시 DB를 원격에서 접속할 때 발생하는 문제 2 nimbus89 2012.09.01 5989
3828 CCI 라이브러리 배포에 관해서 2 뀨브리드 2015.05.28 4130
3827 CCI 예제 프로그램이 실행이 안되요;; 5 file 나동호 2009.03.21 15036
3826 CCI 프로그램 예제나 자료 나와 있는데 없나요?? 2 나동호 2009.03.24 10703
3825 CCI 프로그램을 하려면 어떻게 해야하나요? 2 나동호 2009.03.22 10716
3824 CCI_PCONNECT 사용 여부에 따라 브로커가 죽거나 행 상태에 빠질 수도 있습니까? 1 섭개발자 2012.11.10 6611
3823 CLASS 삭제문의 1 키싱유 2014.01.17 9361
3822 CLOB 관련 문의드립니다. 3 HYHY 2020.11.23 258
3821 CLOB 내보내기 질문입니다ㅠ..ㅠ 2 유릉 2014.11.07 9313
3820 CLOB 데이터 타입 질문 1 하늘같은바다 2013.01.15 7229
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 200 Next
/ 200

Contact Cubrid

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