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
운영게시판
최근게시물
Oracle Q&A 40119 게시물 읽기
No. 40119
DB레코드 수와 속도..관련 질문입니다
작성자
조근재(hanulnun)
작성일
2013-04-30 13:56
조회수
6,049

자료가 10년정도 쌓인

 20만건 정도의 레코드가 있는 DB가 있었습니다

어느순간부터 해당 테이블에서 레코드를 뽑아올때 심하게 느리다..라는 생각이 들어 

과거 안쓰는 자료를 분리해보자 해서..

현재는 6만건 정도로 줄였습니다..

근데 속도가 빨라지지 안았습니다

혹시나 해서 shutdown 했다가 다시 올렸습니다만..

그래도 안빨라지네요..

현재 이 테이블에는 여러개의 index들이 있는데 인덱스들을 다 지우고 새로 만들면 좀 빨라질까요?

아님 다른 처리 방법이 있는건가요?

 

새로운 테이블을 만들고 데이터를 옮기면 빨라질까요?

 

아... 모르겠습니다

 

ㅠ_ㅠ 어떻게 하면 좋을까요? 도와주세요

 

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

새로운 테이블을 만들고 데이터를 이관시켜서 해보세요

채용근(taiji97)님이 2013-04-30 15:32에 작성한 댓글입니다.

채용근님 감사합니다

한번 해보고 결과 다시 써볼께요

조근재(hanulnun)님이 2013-05-01 16:30에 작성한 댓글입니다.

속도가 느려진 가장큰 이유는 레코드들을 입력하고 지울때 일어난 인덱스의 Fragmentation 때문일 것입니다. 레코드를 많이 지운다고 해서 이미 생긴Fragmentation 이 줄어들 가능성은 거의 없읍니다.

 

인덱스를 지우고 새로 만들면 쿼리 속도가 빨라 질것 입니다. 왜냐하면 인덱스가 처음 만들어 질때 Fragmentation이 존재하지 않기 때문입니다. 같은 이유로 새로운 테이블을 만들고 데이터를 옮긴 다음 인덱스를 새로 만들어도 쿼리 속도가 빨라 질 것입니다. 하지만, 운영 DB 에서는 이런 방법들을 쓸 수 없는 경우가 많읍니다.

 

다른 처리방법은 인덱스를 리빌드 하는 것입니다.

 

예를 들어,

 

ALTER INDEX Index_Name REBUILD;

ALTER INDEX Index_Name REBUILD ONLINE; -- 운영 DB 의 경우

 

ONLINE 외에 PARALLEL 과 NOLOGGING 의 옵션들이 있읍니다.

 

hopper(bunny)님이 2013-05-03 14:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40122DBMS_LOB.INSTR() 질문 드립니다.
Hans
2013-04-30
6513
40121아린님....마지막..질문입니다..의도하는바와 좀 달랐습니다. [2]
새하정
2013-04-30
5880
40120재업 해서 글을남깁니다..생각지못했던 난관이네요..ㅡ.ㅜ [1]
새하정
2013-04-30
6229
40119DB레코드 수와 속도..관련 질문입니다 [3]
조근재
2013-04-30
6049
40118오라클 디폴트 스케줄 작업 중지로 인한 영향에 대해서 [1]
전기영
2013-04-30
6395
40117DBLink만들때 users까지 넣을수 있나요?
나우
2013-04-30
5380
40116잡스케쥴을 등로을 했는데요. 급.ㅠ.ㅠ [1]
새하정
2013-04-29
5890
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다