* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요. 저는 이번에 오라클을 큐브리드로 재 구축하는 작업을 하고있는 개발자입니다.
현재 오라클에서 큐브리드로 데이터 마이그레이션 작업을 진행한 상태 입니다. 약 70만건정도 데이터 마이그레이션을 진행했고
이상없이 작업을 마친 상태입니다. 그런데 데이터를 넣은 후에 SELECT문을 실행하면 너무 느립니다.
"SELECT * FROM HANA_ITEM WHERE ISVISB = 1; " 이런 기본 쿼리문이구요. 큐브리드메니저에 질의튜닝도구로 보면 해당 필드에 건
INDEX (XIE_HANAITEM_ISVISB ) 도 타고 있는 상태인데 COST가 60000이 넘게 나옵니다. 데이터가 없는 비슷한 구조의 테이블을 SELECT하면 COST가 5 미만이걸
보면 좀 이상한 생각이 듭니다. 마이그레이션 대상인 오라클에서는 1초도 않걸리는데 반해 너무 느리다는 생각이 드네요.
밑에 테이블 생성쿼리에서 CONTENT필드를 STRING으로 선언한 부분이 의심되어 CONTENT 부분을 빼고 쿼리를 날려도
속도가 그닥 빨라지지는 않는것 같습니다. 지금과 같은 현상이 있을때 어느부분을 봐야하는지 팁을 주시면 감사하겠습니다.
###테이블 생성 쿼리
CREATE TABLE HANA_ITEM
(
ITEMID NUMERIC (8) NOT NULL,
GID NUMERIC (8) NOT NULL,
LEVEL1 NUMERIC (8),
LEVEL2 NUMERIC (8),
LEVEL3 NUMERIC (8),
LEVEL4 NUMERIC (8),
PID NUMERIC (8),
POS NUMERIC (8) DEFAULT - 1,
TITLE VARCHAR (1000),
AUTH_USERID NUMERIC (8),
AUTH_NAME VARCHAR (1000),
RGST_USERID NUMERIC (8),
RGST_NAME VARCHAR (1000),
CONTENT STRING,
READ_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
RCMD_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
OPN_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
STATUS NUMERIC (4) DEFAULT - 1 NOT NULL,
TRNS_KEY VARCHAR (32),
LAST_UPDT DATETIME DEFAULT SYSDATETIME,
TRNS_SRC VARCHAR (32),
RFRN_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
FILE_EXT VARCHAR (8),
KMID NUMERIC (8),
EXPR_DATE DATETIME,
RPLY_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
SCRT_LEVEL NUMERIC (4) DEFAULT 0 NOT NULL,
AUTH_DISP VARCHAR (1000),
FLAG_CODE NUMERIC (16) DEFAULT 0 NOT NULL,
ISVISB NUMERIC (1) DEFAULT 0 NOT NULL,
ISANNOUNCED NUMERIC (1) DEFAULT 0 NOT NULL,
EXPR_MNTH NUMERIC (4) DEFAULT - 1 NOT NULL,
RGST_DATE DATETIME DEFAULT SYSDATETIME,
STEP NUMERIC (8) DEFAULT 0 NOT NULL,
FORMID NUMERIC (8),
ANNC_SDATE DATETIME,
ANNC_EDATE DATETIME,
CSTM_FIELD1 VARCHAR (500),
CSTM_FIELD2 VARCHAR (500),
CSTM_FIELD3 VARCHAR (4000),
SCRP_CNT NUMERIC (8) DEFAULT 0 NOT NULL,
CSTM_DATE1 DATETIME
) ;
###인덱스 생성 쿼리
CREATE INDEX XIF_HANAITEM_KMID
ON HANA_ITEM
(
KMID ASC,
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_ANNOUNCED
ON HANA_ITEM
(
ISVISB ASC,
ISANNOUNCED ASC,
ANNC_SDATE ASC,
ANNC_EDATE ASC
) ;
CREATE INDEX XIE_HANAITEM_AUTHUSERID
ON HANA_ITEM
(
AUTH_USERID ASC,
STATUS ASC
) ;
CREATE INDEX XIE_HANAITEM_ISVISB
ON HANA_ITEM
(
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_LEVEL1
ON HANA_ITEM
(
LEVEL1 ASC,
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_LEVEL2
ON HANA_ITEM
(
LEVEL2 ASC,
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_LEVEL3
ON HANA_ITEM
(
LEVEL3 ASC,
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_LEVEL4
ON HANA_ITEM
(
LEVEL4 ASC,
ISVISB ASC,
"GID" DESC,
STEP ASC
) ;
CREATE INDEX XIE_HANAITEM_RGSTUSERID
ON HANA_ITEM
(
RGST_USERID ASC,
STATUS ASC
) ;