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
운영게시판
최근게시물
Informix Q&A 1614 게시물 읽기
No. 1614
order by는 index를 안타나요?
작성자
임도형(dhrim)
작성일
2003-01-16 18:45
조회수
4,845

다음과 같이 테이블을 생성하고 테스트 해봤습니다.

 

create table test (

age int,

name varch(30)

);

create index idx_test_age on test(age);

 

그리고 임의의 데이타를 10만개 올리고 나서

 

다음의 query를 했을 경우 0.1초 미만의 시간이 걸렸지만

select * from test

where age <30;

 

다음의 query의 경우 거의 10초 가까이 걸리네요.

select * from test

where age <30

order by age;

 

하지만 다음과 같이 힌트를 주었을 경우에는 0.1초 미만의 시간이 걸립니다.

select {* index(test idx_test_age)} * from test

where age <30

order by age;

 

추측하건데... where안의 column은 index를 잘 타지만 order by는 index를 잘타지 못한다. 그런데 hint를 주면 잘탄다...

 

힌트를 주지 않고 order by절의 column이 index를 잘타게 할수는 없나요?

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

일단 age 칼럼에 인덱스가 생성되면 자동 정렬 됩니

 

select * from test

where age <30

order by age;

 

이 경우에 빠른 속도를 위해서는 order by age 절이 필요 없습니다.

 

order by 절을 쓰시는 이유는 age 순으로 정렬하여 보여주기 위함인데 age 가 이미 인덱스가 생성되어 있으므로

select * from test

where age <30

이 구문 만으로도 age 순으로 정렬된 데이타가 보여 집니다.

 

속도 차이가 나는 이유는

select * from test

where age <30

이 sql 문 에는 맨 처음 age 인덱스만 접근하여 rowid 를 찾고 바로 test table 에 접근하여 모든 칼럼을 들고 옵니다.

 

반면

select * from test

where age <30

order by age;

이 sql 문은 age인덱스 접근 -> rowid 추출-> test테이블 접근 -> 해당 칼럼을 추출 -> 다시 age 순으로 정렬

 

바로 order by 구문을 수행하기 위해서 <다시 age 순으로 정렬 > 과정을 거치기 때문입니다.

 

그럼 이만..

 

 

 

 

 

.

그리고 order by 절에 칼럼 명이 기술되면 해당 칼럼도 인

따라서

order by age

황정숙님이 2003-01-20 12:07에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1617UNION을 사용할 때 조인되는 컬럼 중 날짜 TYPE이 nulL인 경우 에러 해결방법이 궁금합니다.
강희정
2003-01-21
3728
1640┕>Re: UNION을 사용할 때 조인되는 컬럼 중 날짜 TYPE이 nulL인 경우 에러 해결방법이 궁금합니다.
천일동안
2003-02-14 15:49:44
4035
1616[질문]Create Trigger에 대해서..
더기리
2003-01-21
3751
1615[초보]binary 데이터의 insert, select등등
김정민
2003-01-17
3703
1614order by는 index를 안타나요? [1]
임도형
2003-01-16
4845
1613ADO Query 질문입니다.[급]
한감
2003-01-16
3472
1612unload시 질문이요... DB가 완전히 깨졌다면? [2]
양은경
2003-01-15
3767
1611Delete 문 사용시 에러.. [1]
머리야
2003-01-14
3833
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다