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 2,641건 105 페이지
  • RSS
기술자료 목록
561
그누보드   14024  2008-09-02 17:07 ~ 2014-11-12 00:00  
560
Secure   12742  2008-09-02 11:19  
열람
PHP   16681  2008-08-27 17:46  
558
호스팅   16875  2008-08-27 17:35 ~ 2008-09-23 00:00  
557
ClassicASP   13533  2008-08-25 20:42  
556
ClassicASP   17237  2008-08-25 18:06  
555
영카트   22636  2008-08-12 14:59  
554
PHP   12515  2008-08-12 12:13  
553
일반   11176  2008-08-12 11:59  
552
일반   24318  2008-08-07 17:32  
551
HTML   12805  2008-08-06 15:14  
550
HTML   18498  2008-08-06 14:56  
549
Secure   15363  2008-08-05 10:48 ~ 2009-07-25 00:00  
548
전자결제   16984  2008-08-04 12:24 ~ 2018-05-24 20:22  
547
ClassicASP   26989  2008-08-02 18:01 ~ 2016-10-21 00:00  
546
ClassicASP   15149  2008-08-02 18:01  
545
영카트   15034  2008-07-24 06:15  
544
영카트   13117  2008-07-24 06:14  
543
테크노트   11162  2008-07-22 10:23  
542
HTML   36276  2008-07-19 14:57  

검색

해피정닷컴 정보

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

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