큐브리드 select 성능 관련 문의

by turbo_jdh posted Feb 19, 2019

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 64bit
CUBRID Ver.
CUBRID 10.1
CUBRID TOOL Ver.
CUBRID Manager 10.1.0.0003  (64bit)
응용 환경(API)
 

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요.


큐브리드를 사용하고 있는 개발자입니다.


큐브리드의 select 질의 성능에 관해 문의드릴 사항이 있어 질문 드립니다.


select 조회하는 테이블에는 대략 4만건 정도의 데이터가 있습니다.


큐브리드 매니저를 통해 'select * from 테이블' 질의 수행 시, 대략 8~10초 정도가 소요됩니다.


4만건의 데이터를 조회하는 데 너무 많은 시간이 걸리는 듯 하여 이에 대한 해결방안이 무엇이 있는지 문의드립니다.


아래는 쿼리 로그의 일부입니다.


------------------ query_editor_1.sql.log ------------------


19-02-19 10:47:48.509 (413) prepare 8 SELECT * FROM mg_vial_info  WHERE ROWNUM  >= 1;

19-02-19 10:47:48.521 (413) prepare srv_h_id 1

19-02-19 10:47:48.523 (413) set query timeout to 0 (no limit)

19-02-19 10:47:48.523 (413) execute srv_h_id 1 SELECT * FROM mg_vial_info  WHERE ROWNUM  >= 1;

19-02-19 10:47:49.302 (413) execute 0 tuple 42631 time 0.778

19-02-19 10:47:49.328 (413) fetch srv_h_id 1 cursor_pos 34 fetch_count 100

19-02-19 10:47:49.358 (413) fetch srv_h_id 1 cursor_pos 67 fetch_count 100

19-02-19 10:47:49.379 (413) fetch srv_h_id 1 cursor_pos 100 fetch_count 100

19-02-19 10:47:49.397 (413) fetch srv_h_id 1 cursor_pos 133 fetch_count 100


.....


19-02-19 10:47:56.283 (413) fetch srv_h_id 1 cursor_pos 42472 fetch_count 100

19-02-19 10:47:56.286 (413) fetch srv_h_id 1 cursor_pos 42505 fetch_count 100

19-02-19 10:47:56.289 (413) fetch srv_h_id 1 cursor_pos 42538 fetch_count 100

19-02-19 10:47:56.293 (413) fetch srv_h_id 1 cursor_pos 42571 fetch_count 100

19-02-19 10:47:56.296 (413) fetch srv_h_id 1 cursor_pos 42604 fetch_count 100

19-02-19 10:47:57.443 (413) cursor_close srv_h_id 1

19-02-19 10:47:57.443 (0) end_tran COMMIT

19-02-19 10:47:57.443 (0) end_tran 0 time 0.000

19-02-19 10:47:57.443 (0) *** elapsed time 8.934


------------------ query_editor_2.sql.log ------------------


19-02-19 10:47:57.709 (0) CLIENT IP 127.0.0.1

19-02-19 10:47:57.709 (0) CLIENT VERSION 10.1.0.7663

19-02-19 10:47:57.709 (0) session id for connection 0

19-02-19 10:47:57.710 (0) connect db cubrid_default_1@localhost user dba url jdbc:cubrid:localhost:30000:cubrid_default_1:dba:********: session id 285419

19-02-19 10:47:57.710 (0) DEFAULT isolation_level 4, lock_timeout -1

19-02-19 10:47:57.710 (0) end_tran COMMIT

19-02-19 10:47:57.710 (0) end_tran 0 time 0.000

19-02-19 10:47:57.710 (0) *** elapsed time 0.000


19-02-19 10:47:57.710 (503) prepare 8 SELECT k.key_attr_name  FROM db_index_key k, db_index i  WHERE k.class_name = i.class_name  AND k.index_name = i.index_name AND k.class_name = 'mg_vial_info' AND i.is_primary_key = 'YES'

19-02-19 10:47:57.722 (503) prepare srv_h_id 1 (PC)

19-02-19 10:47:57.723 (503) set query timeout to 0 (no limit)

19-02-19 10:47:57.723 (503) execute srv_h_id 1 SELECT k.key_attr_name  FROM db_index_key k, db_index i  WHERE k.class_name = i.class_name  AND k.index_name = i.index_name AND k.class_name = 'mg_vial_info' AND i.is_primary_key = 'YES'

19-02-19 10:47:57.735 (503) execute 0 tuple 1 time 0.012

19-02-19 10:47:57.735 (503) cursor_close srv_h_id 1

19-02-19 10:47:57.736 (0) con_close

19-02-19 10:47:57.736 (0) disconnect


19-02-19 10:47:57.736 (0) STATE idle




해당 테이블의 인덱스는 기본키에만 걸려 있습니다.


테이블의 컬럼 수는 40개 정도입니다.


몇 개의 컬럼으로 select 시에는 그나마 괜찮은 속도를 보이지만, * 대신 모든 컬럼을 기입하여 select 시에도 동일하게 속도가 느린 것 같습니다.


답변 부탁 드립니다.


감사합니다.


Articles

31 32 33 34 35 36 37 38 39 40