Background Image

FORUM

조회 수 1749 추천 수 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 132687
» 11.3 서비스 오픈 바인드 변수 처리 시 성능 5 file abc123 2025.06.25 1749
44 큐브리드 데이터베이스 디스크 변경 문의사항입니다. 1 난지수 2025.06.25 1653
43 CUBRID 9.3 & 디비버(DBeaver)에서 테이블 탐색기 없음 관련 문의1 1 빠리 2025.06.26 1973
42 트리거 조회시 권한 없음 1 큐피 2025.06.26 1504
41 gettransactioninfo 응답 값에 sql_text가 없는 이유 문의드립니다. 1 file ogu 2025.07.09 1510
40 function생성 질문 4 wltkd96 2025.07.09 1579
39 액티브+트랜잭션 로그를 사용한 복구 방법이 있나요? 1 로키 2025.07.09 1601
38 특정 데이터 삭제 여부 및 존재기록 확인문의 2 far 2025.07.14 1328
37 Cannot communicate with the broker 에러 로컬백업 2025.07.15 1336
36 cubrid broker status 관련 4 로컬백업 2025.07.16 1387
35 cubrind tranlist tran time 관련 2 로컬백업 2025.07.16 1276
34 killtran 이후 cubrid.jdbc.driver.CUBRIDException: A database has not been restarted. 1 로컬백업 2025.07.16 1552
33 tranlist 확인시 sql_id 는 empty 이고 trantime 은 계속늘어나는 현상 3 로컬백업 2025.07.17 1353
32 jdbc utc 설정 1 hellosh 2025.07.18 1376
31 어드민 툴 오류 (Software caused connection abort: recv failed) 2 file 테스트맨 2025.07.24 1086
30 Python3.1x 버전에서 CUBRID-Python wheel 패키지 드라이버 빌드하기 file HiCLASS 2025.08.05 389
29 프로토콜 문서 관련하여 문의 드립니다. 6 박정현 2025.08.08 325
28 unloaddb 실행시 오브젝트파일 0byte 생성 6 ciel 2025.08.09 386
27 Cubrid 11.4 와 manager 11.1 연결되나요? 3 ciel 2025.08.11 397
26 중복 컬럼 문의 1 file 깐노 2025.08.12 321
Board Pagination Prev 1 ... 204 205 206 207 208 209 210 211 212 213 Next
/ 213

Contact Cubrid

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