Background Image

FORUM

조회 수 16424 추천 수 0 댓글 8
?

단축키

Prev이전 문서

Next다음 문서

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

지난 2주 동안..

큐브리드로의 마이그레이션과 환경 최적화를 위해..

여러가지 많은 시도들을 했습니다.


Q&A 게시판에 많은 질문 글을 등록했고, 답변도 받았고..

버그를 찾기도 했습니다..


마이그레이션이 끝나면,

성능 상의 문제는 전혀 없을 것이라 생각했지만..


서버를 튜닝해봐도..

큐브리드의 쿼리 처리 속도는 개선되지 않는 다는 것과

현재의 DB로는 큐브리드를 사용할 수 없다는 결론을 내렸습니다.


100만개 row를 가진 테이블을 테스트 했고,

큐브리드의 select 문에 대한 처리 속도는 안정적입니다.

count(*) 등은 mysql에 비해 빠른 것으로 테스트 결과를 얻었습니다.


문제는 다른 쿼리문에 대한 처리 속도인데..

delete, update 등.. 

80만개에 대한 쿼리에 대해서..

처리 시간을 알 수가 없었습니다..

4시간이 넘어도 종료되지 않아서, 강제 종료를 했습니다..

더 기다린 것은 무의미하단 결론을 내렸습니다..


지금 마지막으로..

delete 문을 한번 더 실행하고 있는데..

delete from xe_documents WHERE regdate LIKE '2010%'and (module_srl = ** or module_srl = **);

한시간이 경과된 상태입니다.. (regdate, module_srl 등은 모두 인덱스가 걸려 있습니다..)


한달여간 큐브리드 버전으로 작업한 프로그램과 서버 구성은,,

모두 다 롤백을 해야할 것 같습니다....


지난 9월부터 utf8 지원 요청을 시작으로..

많은 기대를 했었는데.. 좀 아쉽네요..


큐브리드를 사용하기 위해서 utf8이 지원되길.. 3개월이 넘게 기다렸는데 말이죠.. 


큐브리드가 더욱 발전하길 바랍니다..


문제들이 개선되면, 

그 땐, 다시 큐브리드를 사용하고 싶네요..


그 동안, 친절한 답변에 감사드립니다.

앞으로 더 노력해 주세요. ^^

감사합니다.



  • ?
    밝은미소 2011.01.11 00:45

    조건식을 인덱스를 확실하게 타게 하려면 USING INDEX를 사용하심이 어떨지요~.

    지금 = 조건으로 module_srl을 사용하고 있으니, 이 부분만 인덱스 타게 만들어도 성능이 나오지 않을까 생각됩니다.

    아래 매뉴얼 참고하시어 USING INDEX를 한번 써 보시길 권장해 드립니다.

    http://www.cubrid.com/online_manual/cubrid_831/syntax/syntax_retreive_index.htm

  • ?
    스마트 2011.01.11 03:31

    USING INDEX 사용해 보겠습니다.

    1시 30분에 시작한 본문의 쿼리는 6시에 강제 종료했습니다.

    csql -s 로 복구하는데.. 지금까지의 경험으로 보면..

    실행시간 만큼의 복구 시간이 필요하더군요..

    10시나 11시쯤  USING INDEX 를 활용해서 쿼리를 한번 더 던져 보겠습니다..

    잘되면 좋겠네요.. 그럼 큐브리드를 계속 사용할 수 있을텐데요.. ^^

  • ?
    장현석 2011.01.11 03:43

    어제 메일드린 mcpjang입니다.

    만약 USING INDEX 적용 후에도  성능 개선이 없으시면 부담없이 연락 주세요..

    원격으로  이상 원인을 확인해 드리겠습니다.  

  • ?
    샤롱스판 2011.01.11 03:44

    조건절을 약간씩 변경해보시면서 using index reg_time_idx 또는 using index module_srl_idx 등을 시도하시는 것도 좋을 듯 합니다. 인덱스 컬럼 값 분포도를 잘 모르기 때문에.. 선 조건에 module_srl을 먼저 준다던가..or 조건 대신 in을 쓴다던가. reg_time을 타게 한다던가, module_srl을 타게 한다던가.. 등등 제품마다 옵티마이저의 동작 방식이 다르기 때문에 실행 시간을 보시면서 튜닝을 하시면 좋을 것 같습니다. 

    delete from xe_documents WHERE regdate LIKE '2010%'and (module_srl = ** or module_srl = **);

    --> delete from xe_documents WHERE module_srl IN (**, **) and regdate LIKE '2010%' using index ~~~;

    --> delete from xe_documents WHERE regdate LIKE '2010%' and module_srl IN (**, **) using index ~~~;

  • ?
    스마트 2011.01.11 13:16 SECRET

    "비밀글입니다."

  • ?
    스마트 2011.01.12 10:27

    도움 주셔서 감사합니다.

    원격지원으로 환경설정도 해주시고, 여려모로 도움을 많이 받았습니다.

    감사의 마음을 다시 한번 전합니다.


    좋은 결과로 이어졌으면 좋았을텐데..

    아쉽게도 기대했던 성능 향상으로까지는 연결되지 못했습니다.


    여러 테스트 결과..

    큐브리드를 통한 데이터 삭제 시,

    10,000건당 약 15분의 삭제 시간이 소요됨을 확인했습니다.


    쿼리문에 rownum between 1 and 100000 형태의 조건을 추가해서

    1만개, 10만개 단위로 테스트를 했습니다.

    1만개에 15분, 10만개에 2시간 반정도가 소요되었구요.

    100만개 단위로 테스트를 하다가, 

    log사이즈가 너무 커져서.. hdd디스크 용량 full로 fatal 에러가 발생하여 쿼리가 중단되었습니다.

    100만개 짜리 쿼리 자체는 3시간 정도 진행된 상태였고, 

    1만개 기준 15분으로 보면.. 약 25시간 정도의 삭제 시간이 예상되었습니다.


    인덱스를 사용한 삭제 처리였고,

    현재 원하는 서비스 환경에는 적절하지 않다고 판단이 되었습니다..


    한달여간 나름의 노력을 했고, 큐브리드 직원분들에게 많은 지원을 받았는데 

    좋은 결과로 이어지지 못해서 아쉽네요..


    향후에는 쿼리 처리 속도면에서 개선이 이루어지길 바라겠습니다.

    감사합니다.




  • ?
    샤롱스판 2011.01.11 19:50

    USING INDEX 다음에 오는 인덱스는 조건절에 명시된 컬럼(즉, regdate와 module_srl)만 포함해야 하고, 다른 컬럼을 품고 있으면 그걸 안타고 순차스캔을 합니다~ 지금 명시한 인덱스는 다른 컬럼을 포함하고 있네요~

  • ?
    샤롱스판 2011.01.11 01:10

    여러모로 노력하셨는데 일단 너무 안타깝습니다. 적절하게 참고할 만한 자료들이 없어서 더욱 고생이 많았을텐데요.. 다만, 인덱스를 안타고 풀스캔한다고 해도 백만 레코드에 대해 저렇게 나오는 것은 매우 비정상적인 시간이고, 마이그레이션 이후 DB 사이즈가 5배나 크게 잡힌다는 것도 매우 이상하고요.. 쿼리들은 CM에서 실행하신건지, CSQL에서 실행해도 똑같이 그런지.. CMT가 string타입에 대해 3배수로 컬럼 사이즈를 크게 잡는데 그 영향도 조금 있을 것 같고요..또 data_buffer 사이즈 등 서버 파라미터 설정도 영향이 있었을 것이고.. 앞으로 마이그레이션 전환 사용자를 위한 많은 문서들을 준비해야 할 것 같습니다. 수고하셨습니다. 


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4285
3696 큐브리드에서 오프소스 Talend 사용 가능한 지 문의드립니다. 3 본부장 2021.05.24 180
3695 큐브리드에서 오라클로 연동할 수 있나요? 1 현쥬리 2009.11.02 10196
3694 큐브리드에서 멀티 데이터베이스를 지원하나요? 1 까망군 2009.11.21 9529
3693 큐브리드에서 덤프하는 방법 질문하겠습니다. 1 겸둥이k 2021.08.04 1197
3692 큐브리드에서 ddl 를 뽑아내고 싶습니다. 3 varsql 2020.05.18 772
3691 큐브리드에도 테이블 정보를 담고 있는 DB가 있나요? 2 파란토끼 2013.09.27 9957
3690 큐브리드에 제공하는 파티셔닝 사용후 조회시 문제 5 file 연습용 2021.09.01 163
3689 큐브리드에 있는 sql데이터를 다른사이트에 표출하는방법 3 꼴통개발자 2019.11.05 177
3688 큐브리드에 데이타 타입 지정문제 4 지니보이 2009.12.26 20198
3687 큐브리드에 db link 기능이 있나요? 1 김성일컴퍼니 2013.07.18 10411
3686 큐브리드에 Synonym기능 있나요? 1 김성일컴퍼니 2013.07.18 10886
3685 큐브리드에 PK, FK, INDEX 이름명 변경 신텍스 문의 드립니다. 1 덴드로비움 2017.08.30 1059
3684 큐브리드앱스팩 설치문의 1 오케이디바이스 2009.11.26 9068
3683 큐브리드설치에러;; 1 가루구 2009.02.14 12590
3682 큐브리드설정 문의 5 초보 2010.04.13 10026
3681 큐브리드상에서 한글을 깨지지 않고 자르는 방법이 있을까요? 1 file 안지민 2012.03.13 9325
3680 큐브리드메니저 브로커 접속 에러 - 353 1 leemited 2020.06.24 164
3679 큐브리드매니져로 테이블에 MULTISET 추가시 1 하나엘 2009.12.02 10125
3678 큐브리드매니저의 아이콘 개선 요청 3 file 고영진 2009.09.24 11361
3677 큐브리드매니저에서서버접속시연결오류가납니다 2 secret 훈이아빠 2016.12.01 15
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 199 Next
/ 199

Contact Cubrid

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