order by 없이 정렬 가능한가 > 기술자료 | 해피정닷컴

order by 없이 정렬 가능한가 > 기술자료

본문 바로가기

사이트 내 전체검색

order by 없이 정렬 가능한가 > 기술자료

PHP order by 없이 정렬 가능한가

페이지 정보


본문

질문1. order by가 시스템에 어떤식으로 부하를 주는지요 (예 풀스캐닝을 해서 다시정렬..)

아시는 것처럼 조건절에 맞는 데이타를 읽어 온 후 그 데이타를 스캔하여 다시 정렬을 하게 됩니다.
저도 튜닝을 하면서 알게 된 여러가지 사실 중에 한가지가 인덱스나 불필요한 ORDER BY가 없어도 쿼리 성능을 훨씬 증가 할수 있다는 사실을 알게 되었습니다.
여담으로 BOARD 테이블에 NUM이 기본키로 설정되어 있는경우, NUM은 자동으로 오름차순으로 되어 있습니다.

1. select top 10 * from board order by num desc
NUM에 걸린 인덱스에서 내림차순으로 변경하여

2. select top 10 * from board
로 쿼리를 던지고 실행계획을 보면 같습니다.

1번 쿼리가 정렬을 하기 때문에 시간이 더 오래 걸릴 것 같지만
1번 쿼리의 경우 옵티마이져가 DESC를 먼저 간파하여 인덱스를 역순으로 읽어서 가져오게 되기 때문입니다.

이와 같이 어떤 환경이냐, 어떤 필드를 조회 하느냐에 따라 반드시 이렇다 저렇다 말할수는 없습니다.
일반적으로 재 정렬하는 것은 피하는것이 좋고 상황에 따라 튜닝하시는 것이 좋습니다.
(옵티마이져는 진화합니다. 항상 같으 방법으로 조회하지만도 않습니다.)


질문2. select 글의번호, 글의 순서, 글의 가치 from table_name where order by 글의 가치 desc, 글의 순서 desc; <== 이쿼리를 order by를 빼고 정렬할수있는지요?

인덱스 생성 시 필드 명 다음에 ASC, DESC 를 사용하게 됩니다.
일반적으로 이부분을 생략하게 되면 ASC로 자동 선택되는 것을 알고 계실 겁니다.
그래서 아래와 같이 인덱스 생성 시 내림차순 정렬을 할 필드에 각각 DESC 를 써주시면 됩니다.

CREATE  INDEX [INDEX_NAME] ON [dbo].[table_name]([글의가치] DESC , [글의순서] DESC) ON [PRIMARY]


출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=64642580

댓글목록

등록된 댓글이 없습니다.


Total 195건 8 페이지
  • RSS
기술자료 목록
55
PHP   26609  2009-01-31 10:50  
54
PHP   19196  2009-01-16 20:00  
53
PHP   17505  2009-01-05 20:07  
52
PHP   16952  2008-12-31 05:34 ~ 2022-11-30 12:11  
51
PHP   15404  2008-12-17 21:15  
50
PHP   15151  2008-12-17 21:02 ~ 2018-10-09 09:21  
49
PHP   24480  2008-10-29 10:33 ~ 2013-04-06 00:00  
열람
PHP   16778  2008-08-27 17:46  
47
PHP   12598  2008-08-12 12:13  
46
PHP   14120  2008-06-21 18:14  
45
PHP   15802  2008-04-26 16:50 ~ 2021-07-06 21:53  
44
PHP   22368  2008-04-26 15:59 ~ 2013-01-14 00:00  
43
PHP   15160  2008-04-26 15:05 ~ 2009-09-16 00:00  
42
PHP   15335  2008-04-21 23:09  
41
PHP   17029  2008-04-21 12:02 ~ 2021-08-17 23:30  
40
PHP   13022  2008-01-22 17:03  
39
PHP   23826  2008-01-10 01:01 ~ 2008-02-10 00:00  
38
PHP   14864  2008-01-07 22:40  
37
PHP   16683  2008-01-04 00:15 ~ 2022-11-18 10:28  
36
PHP   17468  2007-10-22 11:42 ~ 2013-12-30 00:00  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.