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 722 게시물 읽기
No. 722
Re: Re: 급한 질문 (select)
작성자
권혁봉
작성일
2000-05-12 10:11
조회수
7,190

> > MS-SQL에는 order by 로 정렬을 한것 가운데

> > 1번째 레코드만 가져올 수 있는 방법이 있는데

> >

> > 오라클에도 이런 방법이 있나요?

> > max를 사용해서 하는 방법 말구요

> > max를 사용하면 max값의 다른 필드값은 가져올 수 가 없잖아요

> > 결국 select 구문을 두번 사용하게 되는데

> >

> > select 구문을 한번만 사용해서 가능한지....

>

> 있지만 효율성이 떨어집니다.

> subquery를 사용하면 됩니다.

> SQL> select ename from emp order by ename desc

> ENAME

> ----------

> hun

> WARD

> TURNER

> SCOTT

> MILLER

> MARTIN

> KING

> ...

>

> SQL> select ename from (select ename from emp order by ename desc)

> 2* where rownum < 2

> SQL> /

>

> ENAME

> ----------

> hun

>

> SQL>

> 단지 SQL문을 한번만 보내면 될 뿐 내부적으로으로는

> max 값을 찾아서 이 max 값을 가지고 다시 쿼리하는 것과

> 어느 것이 효율이 좋은지는 반드시 테스트해 보고

> 사용하세요.

> 몇천건의 소량의 데이타와 수십만건 이상인 테이블에서

> 테스트 해보고 사용하는 것이 좋습니다.

>

> 인덱스 range scan을 할 경우는 실제 그 범위 안에서만 영향을 받게

> 될 것이므로 데이타 건수와도 조금은 영향이 적을 것이라고 생각되지만,

> 테스트 해보시고 ( 보통 천번 이상 loop를 돌리고 평균 값을 내면...)

> 결과를 올려주시는 것이 다른분들에게도 도움이 되지 않을까요?

>

>

 

오라클에는 힌트라고 하는 문장이 있습니다.

다른 DB에서는 없는것으로 저는 알고 있습니다.

 

뭐냐 하면 위의 예를 들어 바로 설명하여 드리죠

 

SELECT /*+ INDEX_DESC(emp emp_ie1) */

ename

FROM emp

WHERE ROWNUM = 1

 

하시면 건수에 상관없이 인덱스의 뒤에서부터 데이타를 읽어 옵니다.

 

그림은 넣지 못했습니다.

 

그런데 4GL 툴들중에서 위의 힌트부분의 문장을 무시하고 처리는 것들이

있더라고요 (파워빌더)

다른 VB, DL 아직 테스트는 못했읍니다.

 

지금은 자바를 주로 사용하거 든요 ...

 

힌트문을 정리한 자료가 있으깐 올려드리죠 보시면 조그나마 도움이 되시면

좋겠군요 ...

 

-- 추신 --

 

대청출판사 에서나온 오라클 SQL 튜닝 실무사례, 대용량 데이타베이스1,2

를 참고하시면 좀더 많은 자료를 구하실수 있습니다.

[Top]
No.
제목
작성자
작성일
조회
724ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'
박성민
2000-05-12
7191
726┕>Re: ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'
김규태
2000-05-12 13:28:51
8000
723oracle8i 설치시 logout되는 문제.
김연석
2000-05-12
6478
744┕>Re: oracle8i 설치시 logout되는 문제.
Firebird
2000-05-14 19:15:42
6699
720text 화일을 필드구분자 이용해서 DB저장하는 법?
김일환
2000-05-12
6647
721┕>Re: text 화일을 필드구분자 이용해서 DB저장하는 법?
김규태
2000-05-12 09:22:49
8397
716급한 질문 (select)
김종호
2000-05-10
6369
717┕>Re: 급한 질문 (select)
김규태
2000-05-11 16:37:51
7109
722 ┕>Re: Re: 급한 질문 (select)
권혁봉
2000-05-12 10:11:48
7190
725  ┕>Re: Re: Re: 급한 질문 (select)
김규태
2000-05-12 13:23:58
6628
713oracle8i (8.1.5) 설치시 문제 해결좀 부탁드립니다.
손현모
2000-05-10
6937
710오라클 함수 질문 (PHP연동)
하상웅
2000-05-10
7480
712┕>Re: 오라클 함수 질문 (PHP연동)
구우경
2000-05-10 12:33:24
8048
709[질문] 서블릿과 오라클에서 한글문제(아래와 같은 질문입니다)
안영주
2000-05-10
7383
714┕>Re: [질문] 서블릿과 오라클에서 한글문제(아래와 같은 질문입니다)
chemis
2000-05-10 16:20:24
8029
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2020 DSN, All rights reserved.
작업시간: 0.011초, 이곳 서비스는
	PostgreSQL v13.1으로 자료를 관리합니다