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
운영게시판
최근게시물
MS-SQL Q&A 4638 게시물 읽기
No. 4638
인덱스 정렬과 order by 정렬시 결과가 틀리게 나옵니다
작성자
이윤영(thisonce)
작성일
2009-02-12 14:25
조회수
5,704

안녕하세요..

여기서 자료만 검색하다가.. 처음으로 질문 드리네요^^



다름이 아니라,

데이터가 너무 많이 sort하는데 시간이 너무 많이 걸리더라구요.

그래서 인덱스를 사용해볼까 하는데요..

문제는 인덱스를 해서 쿼리한 결과값이랑

order by로 정렬한 결과값이 틀리게 나옵니다.



============================================================

인덱스 설정

create index date_desc on write_test(write_date desc, write_idx desc)

- write_date desc로만 설정을 하려고 했는데, 중복된 값이 있다고 해서 write_idx도 같이 설정했습니다.


쿼리문

1) SELECT TOP 100 * FROM write_test WITH (INDEX(date_desc))

2) SELECT TOP 100 * FROM write_test ORDER BY write_date DESC

3) SELECT TOP 100 * FROM write_test ORDER BY write_date DESC, write_idx DESC

============================================================



제가 원하는 결과값은 2) 결과값이구요

1), 2)는 결과를 조회해 보면 결과가 다소 틀리게 나옵니다.

2), 3)은 같은 결과가 나오구요..

1) 결과에선 중간에 빠지는게 많더라구요..


제가 인덱스 설정을 잘못한걸까요?

많은 도움 부탁드립니다...

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

그냥 인덱스를 생성하시게 되면 넌클러스터 인덱스가 생성이 된다고 하네요. 그래서 생성한 date_desc 인덱스는 넌클러스터 인덱스가 됐고, 테이블에 데이타가 저장될때에는 넌클러스터 인덱스가 아닌 클러스터 인덱스 순으로 저장이 된다고 합니다.


그래서 write_idx, write_date desc로 클러스터 인덱스를 잡으니까 결과가 제대로 나옵니다^^

이윤영님이 2009-02-13 13:57에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4642커서를 사용한 프로시져 질문입니다.
장용석
2009-02-13
6211
4641두개의 테이블에서 값 가져오기 [1]
조수한
2009-02-13
6351
4639트리구조에 관한 질문입니다 [3]
조인국
2009-02-12
6521
4638인덱스 정렬과 order by 정렬시 결과가 틀리게 나옵니다 [1]
이윤영
2009-02-12
5704
4637DELETE 질문이요~~ [1]
전준홍
2009-02-12
5304
4636마지막으로 졸업한 학교만 가져오고 싶어요 [1]
구창선
2009-02-11
5248
4634COUNT를 어떻게 해야 할지 몰라서요.. 도와주세요 [1]
초보자
2009-02-10
5386
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다