Background Image

FORUM

조회 수 290 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

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

Result Set의 caching 과 관련한 질문입니다.

 

얼마전 저희측에서 지원하는 사이트에서 DB 응답 속도 지연 현상이 있어 응용프로그램측에 로그를 확인해보니 Temp Volume 메모리 부족 이었습니다.

 

단시간에 대량의 join, sub query 등이 있었던 것은 사실이므로 해당 문제가 발생할 가능성은 있을수 있다고 생각합니다만.

 

단시간에 쏟아진 Query가 조건절이 변한 것도 아니고 쿼리 대상 테이블에 insert/update/delete 작업이 없었던 상황이라 Result Set Caching이 동작했다면 Temp Volume에 쌓일 일이 없어야 하지 않나 싶어 질문드립니다.

(DB의 로그나 WAS의 로그를 봐도 단일 게시물에 대한 조회며 조회수 Update는 2분단위 batch로 동작합니다.)

 

2009년 6월 경에 작성된 아래 기술 문서에 의하면..

 

https://www.cubrid.com/data_room/3795765

 

효율적인 게시판 사용을 위해 요약 바로 위쪽에 아래와 같은 조언이 있습니다.

 

Query Result Cache 사용하기

질의 결과 캐시(Query Result Cache)는 질의 결과를 저장해 두고 질의 조건까지 동일한 질의문이 입력될 경우, 모든 처리 과정을 생략하고 저장했던 질의 결과를 응용에게 전달하는 기능이다. 대부분의 경우 질의에 포함된 테이블의 내용이 변경이 되면 저장된 내용을 사용할 수 없기 때문에, 거의 변경이 없는 테이블에 접근하는 질의에 대해서만 질의 결과 캐시를 사용해야 하며, 그렇지 않으면 오히려 질의 결과 캐시를 사용하는 오버헤드만 증가하게 된다. 현재 이 기능은 PostgreSQL은 지원하지 않고, CUBRID, MySQL는 제공한다. 설정 방법은 CUBRID의 경우에는 cubrid.conf에 max_query_cache_entries, query_cache_mode, query_cache_size_in_pages 값들을 설정해 주면 되고, MySQL의 경우에는 my.cnf에 query_cache_limit, query_cache_min_res_unit, query_cache_size, query_cache_type 값들을 설정해 주면 된다.

 

장애가 발생한 사이트의 DB(큐브리드 9.3) 설정 정보상에는 위와 같은 설정들이 없어서 레퍼런스를 찾고 있습니다.

 

큐브리드 9.3이 Release 된 시점은 저글이 작성된 2년후 정도라 설정이 있을 거라고 생각하는데 매뉴얼상에 해당 설정과 관련한 설명이 보이지 않습니다.

 

11.0대 버전에는 해당 설정에 대한 설명이 있구요.

 

9.3에서 위의 문제를 해결하려면 어떻게 설정하면 될까요?

  • ?
    김창휘 2021.04.12 14:13
    안녕하세요.

    먼저 Temp volume 용도에 대해서 알려드리면 아래와 같습니다.
    https://www.cubrid.org/manual/ko/10.2/intro.html?highlight=temp%20volume

    - SELECT 문 등 결과가 생성되는 질의 ( From절의 In-Line View 처리 결과를 다른 In-Line View 또는 Permanent table와 조인수행하기 전 중간결과 임시 저장)
    - GROUP BY 나 ORDER BY 가 포함된 질의 (정렬작업 수행 시 임시 작업공간)
    - 부질의(subquery)가 포함된 질의 ( subquery 결과 임시 저장)
    - 정렬 병합(sort-merge) 조인이 수행되는 질의 ( Merge Join 수행 전 각 조인 테이블(또는 In-Line View) 정렬작업 임시 저장공간, 조인되는 대상에 대해서 사전 정렬작업 진행)
    - CREATE INDEX 문이 포함된 질의 ( 인덱스 생성 과정에서 정렬작업 수행 시 임시 작업공간)

    위에서도 언급이 되었듯이 임시 저장공간은 주로 데이터 조회 시 사용되는 공간이고, cubrid.conf의 max_plan_cache_entries는 질의실행 계획을(Oracle의 Library Cache와 유사) 재사용 할 수 있도록 하는 기능에 대한 설정(개수) 입니다.

    일단, 문제가 되었던 시점의 상황 점검과 함께 해당 시점에 수행 되었던 SQL에 대해서 성능 점검을 받아 보시는 것이 좋을 듯 합니다.

    감사합니다.
  • ?
    imwondol 2021.04.12 14:53

    일단 질문은 max_plan_cache_entries에 대한 것이 아니라 max_query_cache_entries에 대한 것입니다.

    https://www.cubrid.org/manual/ko/11.0/admin/config.html#plan-cache-parameters

    Temp Volume의 용도에 관해서는 알고 있습니다만..
    웹로그의 확인 결과로는 집중되었던 Query의 조건절 등이 전혀 변하지 않았기 때문에 Cache를 탔다면 [모든 처리 과정을 생략하고 저장했던 질의 결과를 응용에게 전달하는 기능이다.]라는 설명대로 (Temp Volume 사용 없이) 메모리에 저장되었던 값이 사용되므로 Temp Volume 문제가 아예 첨부터 발생하지 않았을수도 있지 않을까 짐작하고 있습니다.

    위에 매뉴얼은 11 버전입니다. 9.3 매뉴얼에서는 max_query_cache_entries와 관련해서 찾지를 못해서..

    만약 9.3에 해당 기능이 없다면 업그레이드 등을 고려해봐야겠죠.

     

    사실 이게 2년전쯤 오라클에서 큐브리드로 변경한 건데... 오라클 사용시에는 6만여건의 게시물 조회가 단기간에 들어왔을때 장애상황까지는 가지 않았는데 이번에 1만 6천여건 정도의 게시물 조회로 장애 상황으로 갔던거라 SQL의 튜닝은 크게 고려하지 않고 있습니다. 

  • ?
    오명환 2021.04.12 21:06
    query result cache (max_query_cache_entries 설정값)의 기능은 8.X 에서만 지원했던 기능으로, 9.X ~ 10.X version에서 지원되지 않습니다.
    11.0부터 리펙토링 작업과 기능 개선을 통해 해당 기능을 다시 사용할 수 있게 제공하였습니다.

    문의하신 9.3 버전에서는 해당 기능을 사용할 수 없습니다.
  • ?
    imwondol 2021.04.13 08:56
    여태까지 들었던 답변중에 가장 속시원하고 명쾌한 답변이네요. 감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 51
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3274 큐브리드 C api 연동 방법/? 1 댄디 2013.02.18 5990
3273 큐브리드 9.3.6 버전에서 TRIM 이 안되는지요. 5 펌피 2017.10.25 669
3272 큐브리드 9.3) 터미널을 이용하여 큐브리드 DB ubloaddb시 object 파일 깨짐 현상 3 file 솨솨솨 2021.03.18 297
3271 큐브리드 9.3 버전에서 dba 암호 분실시 어떻게 해야 하나요? 1 하늘나무 2018.07.04 551
3270 큐브리드 9.3 버전에서 9.2 버전 다운그레이드 방법좀... 1 나라보자 2015.09.22 6111
» 큐브리드 9.3 버전 Result Set Caching 설정 관련 질문 4 imwondol 2021.04.12 290
3268 큐브리드 9.1 설치 후 에러 3 file Ryon 2013.04.01 6821
3267 큐브리드 8버전 시스템 카탈로그 테이블,컬럼 정보 문의 1 sonoru 2020.11.17 102
3266 큐브리드 7.3 ubloaddb시 object 파일 깨짐 현상 1 file 짜요짜요 2014.07.31 6875
3265 큐브리드 64비트 에서 32비트로 DB이전이 안됩니다. 도와주세요!~ 2 린설 2011.06.07 13098
3264 큐브리드 64bit 설치 후 실행 문제.(2) 1 file 초보개발꾼 2014.01.21 14394
3263 큐브리드 64bit 설치 후 실행 문제. 1 초보개발꾼 2014.01.16 12043
3262 큐브리드 6.6에서 큐브리드 2008로 복구하는 방법좀.. 1 썬해바라기 2009.12.14 9506
3261 큐브리드 4.1 업그레이드 관련 질문 드립니다. 1 conomia 2012.11.02 5905
3260 큐브리드 3.1로 업그레이드가 되지 않습니다. 10 종이 2011.02.23 7759
3259 큐브리드 3.0에서 3.1로 업그레이드시 3 SoMa 2011.02.05 7623
3258 큐브리드 2008에서 모든 테이블 한번에 삭제 하는 쿼리는 어떻게 될까요? 2 헬리 2009.10.24 13896
3257 큐브리드 2008에서 C-API 6 하나엘 2009.11.17 10710
3256 큐브리드 2008과 PHP 5.3 연동할려는데... 1 형민세훈아방 2009.08.21 8839
3255 큐브리드 2008 호스팅 업체가 있습니까? 1 안지민 2009.06.17 9681
Board Pagination Prev 1 ... 32 33 34 35 36 37 38 39 40 41 ... 200 Next
/ 200

Contact Cubrid

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