database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 836 게시물 읽기
No. 836
Q.Select 질의 속도 문제 발생..
작성자
김지완
작성일
2008-01-03 18:43
조회수
3,671

안녕하세요.

회사에서 신규 프로젝트에 큐브리드를 사용하고 있습니다.

 

일단 제일 당면한 큰 문제는 select 질의시 속도 문제 입니다.

 

테이블 하나에 120만 건 정도의 데이터가 들어있습니다.

인덱스가 걸려있는 필드를 이용해서 데이터를 질의 하도록 해봤습니다.

 

ex)

select seq from tb_xxx where is_a = \'Y\'

 

질의 응답 속도가 20 초 이상 걸리는 경우가 많이 있습니다.

 

그래서 두번째로

 

ex)

select seq from tb_xxx where is_a = \'Y\' and rownum between 0 and 100

 

위와 같이 해보았더니 엄청 빠르게 잘 나옵니다. .

 

그래서 세번째로

 

ex)

select seq from tb_xxx where is_a = \'Y\' and rownum between 10000 and 10100

 

해보았더니 다시 또 엄청 느려집니다..

 

between 을 사용하지 않고 rownum > 0 and rownum < 100 과 같은 형태도 동일한 문제가 발생합니다.

 

그래서 CAS를 통해서 발생하는 문제인가 하여, 마지막으로 CAPI 를 이용해 프로그래밍

해보았습니다.

그.러.나. CAPI 도 역시나 같은 증상이 나타납니다.. ㅜ,.ㅜ

 

서버 설정값을 변경해주면 해결을 할 수 있나요~??

혹은 다른 방법이 없을까요~?

데이터가 큰 부분을 다른 테이블로 쪼개 낸다거나 하면 괜찮을까요~?

 

한 row 의 데이터가 큰 편이긴 합니다.

 

아 그리고 CAPI 가 멀티스레드도 지원을 하나요~?

멀티스레드에 대해서는 언급이 없는 것 같았습니다...

 

확인 좀 부탁 드리겠습니다.. ㅠ,.ㅠ

 

ps.

리눅스에서 사용하고 있는데 top 커맨드로 확인해보면 VIRT 가 1.6Gb 나 잡히는군요..

RES 는 368m 입니다... 이 부분도 해결 할 수 있는 방법도 부탁 드리겠습니다.. ㅠ,ㅠ

 

이 글에 대한 댓글이 총 1건 있습니다.

안녕하세요.

문의하신질의는 일단 검색결과자체가 많아 오래걸릴수있으며, 또한 is_a 필드에 인덱스가 없는 것 같습니다. 값이 Y 또는 N 뿐이라면 인덱스가 필요없을수도 있지만 만약 대부분이 N 이고 일부만 Y 라면 검색시 Y 인 값을 찾기위해서 인덱스가 있는 것이 효율적일수 있읍니다.

또한 rownum 은 검색결과가 발생하기 시작하면 between 0 and 100 일 경우 처음 100건만꺼내고 더이상 진행이 되지 않기때문에 빠릅니다. 하지만 뒤로 갈수록 검색결과는 많아지니 느려질수있읍니다. rownum between 10001 and 10010 을 하더라도 만번째까지 결과를 계속 지나쳐야 하니 느려질수밖에 없읍니다. 사람이 눈으로 보는 것처럼 딱 만1번째부터 10개를 꺼내지는 못합니다.

아울러 문의하신 CAPI 의 멀티쓰레드 부분은 현재 지원되지 않고 있읍니다.

또한 한 레코드의 길이가 긴 것은 그만큼 읽어야 하는 데이터도 증가하게 되므로 레코드의 길이를 최소화시키는 것이 좋습니다. 게시판 예를 들면 목록을 위한 테이블, 본문을 위한 테이블 이런식으로 나누어 주는 것이 목록을 꺼낼때 보다 빨리 진행시킬수가 있읍니다.

 

>안녕하세요.

>회사에서 신규 프로젝트에 큐브리드를 사용하고 있습니다.

>

>일단 제일 당면한 큰 문제는 select 질의시 속도 문제 입니다.

>

>테이블 하나에 120만 건 정도의 데이터가 들어있습니다.

>인덱스가 걸려있는 필드를 이용해서 데이터를 질의 하도록 해봤습니다.

>

>ex)

>select seq from tb_xxx where is_a = \'Y\'

>

>질의 응답 속도가 20 초 이상 걸리는 경우가 많이 있습니다.

>

>그래서 두번째로

>

>ex)

>select seq from tb_xxx where is_a = \'Y\' and rownum between 0 and 100

>

>위와 같이 해보았더니 엄청 빠르게 잘 나옵니다. .

>

>그래서 세번째로

>

>ex)

>select seq from tb_xxx where is_a = \'Y\' and rownum between 10000 and 10100

>

>해보았더니 다시 또 엄청 느려집니다..

>

>between 을 사용하지 않고 rownum > 10000 and rownum < 10100 과 같은 형태도 동일한 문제가 발생합니다.

>

>그래서 CAS를 통해서 발생하는 문제인가 하여, 마지막으로 CAPI 를 이용해 프로그래밍

>해보았습니다.

>그.러.나. CAPI 도 역시나 같은 증상이 나타납니다.. ㅜ,.ㅜ

>

>서버 설정값을 변경해주면 해결을 할 수 있나요~??

>혹은 다른 방법이 없을까요~?

>데이터가 큰 부분을 다른 테이블로 쪼개 낸다거나 하면 괜찮을까요~?

>

>한 row 의 데이터가 큰 편이긴 합니다.

>

>아 그리고 CAPI 가 멀티스레드도 지원을 하나요~?

>멀티스레드에 대해서는 언급이 없는 것 같았습니다...

>

>확인 좀 부탁 드리겠습니다.. ㅠ,.ㅠ

>

>ps.

>리눅스에서 사용하고 있는데 top 커맨드로 확인해보면 VIRT 가 1.6Gb 나 잡히는군요..

>RES 는 368m 입니다... 이 부분도 해결 할 수 있는 방법도 부탁 드리겠습니다.. ㅠ,ㅠ

 

남재우님이 2008-01-03 21:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
839Q.UNI-SQL PROC 지원되나요? [1]
강철
2008-01-04
3754
838Q./usr/lib/jvm/jre/jre/lib/i386/client/libjvm.so 위치.. [1]
최윤석
2008-01-04
3759
837Q.uw_lock_write &oid [1]
이기찬
2008-01-04
3594
836Q.Select 질의 속도 문제 발생.. [1]
김지완
2008-01-03
3671
835Q.$CUBRID/admin/sqlx.init는 어디에 있나요 ? [1]
박준배
2008-01-03
3570
834Q.데이타 타입과 사이즈 [2]
나그네
2008-01-03
3792
833Q.쿼리좀 알려주세요. [1]
김호원
2008-01-03
3581
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다