Background Image

FORUM

조회 수 15889 추천 수 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 278
2924 디비내에 저장되어 있는 오브젝트(객체)들의 종류 및 개수를 확인할 수 있는 쿼리 1 송송이 2016.12.11 16063
2923 큐브리드 온라인 도움말 수정요청. 5 송효진 2009.04.05 16053
2922 double 표시형식 문의 2 지렸당께 2011.12.18 16053
2921 ADD_MONTHS 함수의 사용 1 체리필터 2009.06.25 16029
2920 cubrid broker fail문제 1 왠키 2016.12.13 16022
2919 jsp 연결~~ 1 하이에나 2009.11.10 15992
2918 solaris와 hp-unix 지원 관련 2 tekkal 2009.02.03 15977
2917 JAVA , JSP 용 예제 소스를 구할 수 있을까요? 1 나비다 2010.04.27 15970
2916 mybatis의 sql맵에 한번에 여러개의 insert를 할 수 있는지 문의드립니다. 1 아워나 2014.10.09 15962
2915 큐브리드 ODBC 연결 문제... 아따따뚜겐 2013.05.20 15961
2914 큐브리드 복구 관련 질문있습니다. 1 노멤버 2016.12.10 15959
2913 오라클에서 큐브리드로 마이그레이션 방법이 있나요? 1 삽질쟁이 2009.03.03 15941
2912 자동증가 필드 질문합니다 1 유니콘 2009.03.04 15932
2911 마이그레이션 질문이요! 1 으라챠챠 2016.12.09 15922
2910 한글 깨짐 문제 2 지산 2013.04.16 15917
2909 큐브리드 loaddb 1 으라챠챠 2016.12.09 15912
2908 A serial object already exists as an auto increment constraint. 오류 질문 1 kimsuny 2013.10.28 15896
2907 SELECT 시, 필드 값의 대소문자 구분 없이 조건 검색 가능할까요? 2 차오이 2011.04.02 15895
» 큐브리드 쿼리 처리 속도에 대한.. 8 스마트 2011.01.10 15889
2905 암호/복호화 함수 2 서영신 2011.11.22 15888
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 161 Next
/ 161

Contact Cubrid

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