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 5469 게시물 읽기
No. 5469
[문의] index 생성 문의 드립니다.
작성자
새벽소리(sangsik)
작성일
2009-11-24 15:49ⓒ
2009-11-24 15:53ⓜ
조회수
6,763

 안녕하세요.

 create index  명령을 써서 인덱스를 생성했는데요.

 테이블생성할때
"PRIMARY KEY" 로 잡은 컬럼은 자동으로 인덱스에 걸리는거죠?


 where 절에 
"PRIMARY KEY"  컬럼이랑 create index 때 생성한 컬럼이랑  같이 조건넣으면 인덱스 타는거 맞는지 문의드려요.


 감사합니다.



 예) ----------------------------------------------

CREATE TABLE USER_INFO (
    uid       int          NOT NULL,
    user_id   varchar(50)  NOT NULL,
    regdate  datetime NOT NULL DEFAULT (getdate()),
    PRIMARY KEY CLUSTERED (
        [uid] desc
   )  ON [PRIMARY]
)

create index USER_INFO_user_id_index on USER_INFO(user_id)

where 절에 항상 uid 와 user_id 를 조건문으로 걸면 되는거죠?

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

원하시는 WHERE절이 혹시 아래와 같은 것인가요?
SELECT .. WHERE uid = [..] AND user_id = [..]

잘 생각해보시면 아시겠지만, 위의 구문은 의미가 없을 뿐더라, 단일 쿼리에 2개의 인덱스를 탈 수도 없습니다. 실행 계획 출력해보시면 아시겠지만, 무조건 PK만 이용하고, 나머지는 사용되지 않습니다. 게다가 PK를 통해 이미 단일 ROW를 바로 가져올 수 있음에도 불구하고 user_id를 다시 조건문에 넣을 이유가 없겠지요. 대신 아래와 같이 쿼리가 나눠진다면 의미가 있겠습니다.

SELECT ... WHERE uid = [..]
SELECT ... WHERE user_id = [..]

박현우(lqez)님이 2009-11-24 21:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5479[질문] Row Column 을 Col Column 으로 조회 가능 할까요? [1]
궁금이
2009-11-27
6632
5471MS-SQL 2008, 사용자 계정 등록시...
조현철
2009-11-24
6775
5470MS-SQL 2008, 사용자 계정 설정관련 [1]
조현철
2009-11-24
11867
5469[문의] index 생성 문의 드립니다. [1]
새벽소리
2009-11-24
6763
5468두 시간의 차이 값을 3시간 단위로 표시 [1]
박남춘
2009-11-24
6767
5458MS-SQL의 문자열을 구분자로하여 행으로 변환하기 [1]
조필래
2009-11-21
10792
5457[급질]XACT_ABORT 옵션이 OFF로 설정되어 있으므로 중첩 트랜잭션이 필요합니다
heman
2009-11-20
7750
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다