Background Image

FORUM

조회 수 2219 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

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


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS

 Linux 64bit 

CUBRID Ver.

11.3

CUBRID TOOL Ver.

cubrid manager 10.1

응용 환경(API)

java, php, odbc 등 입력


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.


에러 내용 및 재현 방법재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보CUBRID 홈 디렉토리 아래 log 디렉토리 압축


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

11.3 환경으로 서비스 오픈 후 이슈 입니다.  


바인드 변수 처리 된 쿼리로 서비스를 운영 중입니다. 

cubrid manager , dbeaver, csql 등으로 plan 을 보면 3.4초 수행 되는 쿼리인데,  

화면단에서 동일한 쿼리가 200초 수행되는 slow query 로 확인이 됩니다. 실제로 화면에서도 응답이 느립니다. 


챗gpt 등으로 검색해 보니 바인드 변수 처리 시 이슈가 있을 수 있다고, 힌트를 적용하라고 해서 

의심이 되는 부분은 약 3만건 정도 되는 마스터 코드 테이블에서

코드 조회 부분이 의심되어 pk 타도록 힌트 타도록 소스를 수정해서 화면에서 처리 속도가 개선 되었습니다. 


화면단에서 바인드 변수 처리시 이슈가 있는지 확인할 방법은 없는지 문의 드립니다. 










  • ?
    정만영 2025.06.25 10:56
    안녕하세요.

    애플리케이션에서 바인드 변수만 전달하는 경우, SQL에서 참조되는 데이터의 분포도에 따라 옵티마이저가 예상과 다른 실행 계획(예: 테이블 스캔)을 선택할 수 있습니다.

    서비스 오픈 후 발생한 SQL 지연 현상은 CUBRID 11.3 버전 자체의 문제라기보다는, 바인드 변수로 인한 실행 계획 차이로 인해 발생할 수 있는 일반적인 현상으로 판단됩니다.

    만약 옵티마이저가 적절한 인덱스를 선택하지 못하는 것으로 판단되면, /*+ USE_IDX(...) */ 또는 INDEX_SS와 같은 명시적 힌트 사용을 고려해보시기 바랍니다.

    또한, 추가적인 튜닝이 필요한 SQL이 있는지 확인하기 위해 broker_log_top 명령어를 수행하여 slow query가 더 있는지 점검하고, 지속적으로 서비스 안정화를 위한 모니터링과 조치를 병행하는 것을 권장드립니다.
  • ?
    abc123 2025.06.25 11:22
    버전과는 상관없는 질문입니다. 구성 정보 공유 일 뿐입니다.

    전체 쿼리 중에서

    코드값 가져오는 pk 조건입니다.
    select up_org_cd
    from code
    where org_cd =?
    분포도가 나쁠 수 없습니다.
    전체 29000건 code 값 중에 결과 1건 나옵니다.

    현재 쿼리를 using index 사용하도록 수정하면서 성능 부하 부분이 해결 되었습니다.

    select up_org_cd
    from code테이블
    where org_cd =?
    using index pk인덱스

    그래서 바인드 변수 처리 시 성능 이슈 부분이 있는지 문의 드렸습니다.
    홛당하지만 실제 일어난 일입니다.
  • ?
    정만영 2025.06.25 12:16
    위 내용과 같이 code 테이블에 조건절 컬럼이 PK경우, 바이드 변수를 사용등과 상관없이 PK컬럼에 인덱스를 사용하지 않는 사례는 확인되지 않았습니다.

    정확한 검증을 위해 CUBRID 버전(명령어 : cubrid_rel) 정보와 전체 스키마를 올려주시면 내부에서 테스트 후 답변 드리겠습니다..
  • ?
    박세훈 2025.06.25 12:41

    1. CUBRID는 기본설정으로 상수를 자동으로 바인드 변수로 변환하고 있습니다. 그러므로 기본적으로는 바인드 변수와 상수값 질의간의 차이는 없어야 합니다. 하지만 질의 재작성 단계에서 값 유무에 따라 차이가 발생해 실행계획의 차이가 발생할 수 있습니다. 말씀해주신 질의와 같이 간단한 질의라면 차이가 없는 것이 맞습니다. prepare 구문을 사용해 상수 값과 바인드 변수를 사용한 질의의 실행계획에서 차이가 있는지 확인해보세요.

    https://www.cubrid.org/manual/ko/11.3/sql/query/prepare.html#prepare



    2. 실행계획이 캐시 되어 이전의 실행 계획이 계속 사용되었을 수 있습니다. 실행계획 삭제혹은 /*+ recompile */ 힌트를 통해 문제가 해결되는지 확인해보세요.
    https://www.cubrid.org/manual/ko/11.3/admin/admin_utils.html#plandump

     

    3. 통계정보 갱신 전과 이후의 실행계획 차이일 수 있습니다. 통계정보 갱신 시 이미 캐시된 실행계획은 바로 삭제되지 않으며, 일정 시간 후에 많은 변경이 있는 테이블에만 실행계획을 재생성 합니다.

    https://www.cubrid.org/manual/ko/11.3/sql/tuning.html#id1

  • ?
    abc123 2025.06.25 13:14
    내부쿼리를 옮길 수 없어서
    crt로 tranlist 확인내용과
    큐브리드 매니저 실행계획첨부합니다

    매니저로 플랜확인하면 인덱스 스캔하고 수행속도도 빠른데 tranlist에서는 query time tran time 계속 늘어나면서 화면에서는 느립니다

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143787
4248 JDBC에서 SEQUENCE OF 타입의 컬럼 값을 조회하는 방법 문의 새옹지마 2025.12.11 50
4247 DB 운영중 LOCK 관련 이슈가 있어 문의 드립니다. 1 file 용원아빠 2025.12.11 56
4246 spring boot 3.5.8 + cubrid 11.4 JPA설정 문의 2 뵤라 2025.12.10 68
4245 slow.log 파일에서 'server execution statistics' 출력 조건이 궁금합니다. 5 file ogu 2025.12.02 222
4244 Cubrid 11.4의 컬럼명과 도움말의 컬럼명이 다릅니다. 1 엘L 2025.11.28 204
4243 CUBRIDException: The argument is invalid. 3 큐피 2025.11.17 224
4242 CUBRIDException: POSIX external storage error: /ces_029... Permission denied 3 큐피 2025.11.10 235
4241 캐릭터셋 변경 질문드립니다. 1 file 엘L 2025.10.29 283
4240 특정 사용자 ID 에 대한 에러 문의 1 헤이선 2025.10.28 398
4239 [긴급] DB 조회 문의 1 헤이선 2025.10.23 548
4238 dba 계정 생성 방법 3 큐피 2025.10.22 390
4237 오류 메시지 확인 요청 1 file 헤이선 2025.10.22 434
4236 Heartbeat 구성으로 Slave 로 구동되어 있는 상태, master 올릴 때 데이터 정합성 문제 1 tndus 2025.10.20 529
4235 cubrid 11.3.4 HA 장애(비정상 DWON) 후 복구 1 서커스 2025.10.17 520
4234 레플리카 오류 문의 1 file 헤이선 2025.10.15 523
4233 스트링타입을 타임스탬프로 변경시 오류가 발생합니다 1 윤덕현 2025.09.17 567
4232 slave 조인이 불가능한 상태에서 재구축하려고 합니다 2 cubrid1shot 2025.09.13 660
4231 JDBC 다른 유저에 생성된 Table plan 조회 문의 3 lys 2025.09.12 693
4230 큐브리드 admin 데이터 가져오기(csv) 시, 구분자를 변경할 수 있나요? 1 tndus 2025.09.08 767
4229 CUBRID HA구성시 SLAVE의 복제 보관 로그 삭제 방법 6 wodud0170 2025.09.08 684
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 213 Next
/ 213

Contact Cubrid

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