오라클/Tuning

select * from t1 sort ? ㅋ

빵순이^^ 2010. 5. 9. 00:47

강사님께서 어제 급 질문을 던지셨다.
테이블을 생성한 후 select * from t1 sort 해서 출력되는 값이 정렬이 되지 않는데 index를 생성해도 정렬이 되지 않았다.
그런데 primary key를 생성하니 정렬이 된다. 어떤 이유에서 그럴까?

이게 질문이었는데.. sort ?? sort라는 키워드는 처음 들어본다. order by도 아니고 sort가 머지??..ㅋ

예문은 다음과 같다.

SCOTT@192.168.0.10:1521/orcl> drop table t1 purge;
테이블이 삭제되었습니다.
SCOTT@192.168.0.10:1521/orcl> create table t1 (no number);
테이블이 생성되었습니다.
SCOTT@192.168.0.10:1521/orcl> insert into t1 values (3);
1 개의 행이 만들어졌습니다.
SCOTT@192.168.0.10:1521/orcl> insert into t1 values (1);
1 개의 행이 만들어졌습니다.
SCOTT@192.168.0.10:1521/orcl> insert into t1 values (2);
1 개의 행이 만들어졌습니다.
커밋이 완료되었습니다.
SCOTT@192.168.0.10:1521/orcl> select * from t1 ;
        NO
----------
         3
         1
         2
SCOTT@192.168.0.10:1521/orcl> select * from t1 sort;
        NO
----------
         3
         1
         2
SCOTT@192.168.0.10:1521/orcl> create index t1_no_idx on t1(no);
인덱스가 생성되었습니다.
SCOTT@192.168.0.10:1521/orcl> select * from t1 sort;
        NO
----------
         3
         1
         2
SCOTT@192.168.0.10:1521/orcl> alter table t1 add primary key(no);
테이블이 변경되었습니다.
SCOTT@192.168.0.10:1521/orcl> select * from t1 sort;
        NO
----------
         1
         2
         3


사실 답을 쉽게 찾지 못했다..ㅋ

원인은 다음과 같이 유추된다.

'오라클 > Tuning' 카테고리의 다른 글

Driving Table 이란?  (0) 2010.05.16
Nested Loop 예제  (0) 2010.05.16
Nested Loop  (0) 2010.05.08
Join 관련 용어  (0) 2010.05.08
Oracle Data Access Pattern  (0) 2010.05.08