Background Image

FORUM

조회 수 288 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4278
3976 회원가입이 3명이상 안돼요.. 1 딩이 2010.07.08 7844
3975 회사 서버에 접속을 할려면 설정이 다른가요? 2 후니 2009.07.14 10574
3974 홈경로 databases.txt 질문드립니다 1 큐브리드드 2023.07.17 83
3973 홀따옴표 처리 문의 1 초보 2010.04.15 14675
3972 혼합형 데이터 정렬방법 1 큐키 2021.06.11 81
3971 혼합형 데이터 정렬 방법 1 큐키 2021.06.14 252
3970 혹시 큐브리드매니저 자동완성 끄는 기능 있나요 2 안지민 2012.09.05 6031
3969 혹시 큐브리드 매니져 기본글꼴을 고정폭으로 해주실 생각은 없으신가요... 1 안지민 2012.12.20 5762
3968 혹시 PHP5.3.0 버전에서 모듈 설치되신분 계신가요??? 4 senseplus 2009.07.13 9391
3967 혹시 MMDB 지원하나요? 1 tekkal 2009.01.31 17476
3966 호스트 추가시 발생되는 오류에 대해 문의 합니다. 1 거북이사촌 2015.01.06 5259
3965 호스트 추가 질문입니다. 7 몽유객 2010.12.21 13804
3964 호스트 추가 1 karay2k 2011.12.17 17926
3963 호스트 연결이 안됩니다. 3 file 미드소나 2013.01.01 7746
3962 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13911
3961 호스트 연결이 무한 로딩도네요 1 file 큐브리드사용자 2022.10.20 109
3960 호스트 연결이 되지 않습니다. 3 file Juooon 2013.07.24 9229
3959 호스트 연결 에러 3 secret PJEPJE 2016.01.28 10
3958 형변환 오류 문의 1 삽질중 2009.12.30 12967
3957 현재 큐브리드 7.1 을 사용하고 있는데요 1 헬리 2009.10.01 8767
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 199 Next
/ 199

Contact Cubrid

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