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
운영게시판
최근게시물
Oracle Q&A 39957 게시물 읽기
No. 39957
힌트사용.... 왜 안될까요..ㅜㅜ
작성자
하람(haramnara)
작성일
2012-12-31 13:18
조회수
5,873

 

1. SELECT /*+ index_desc(TN_ADMINISTRATIONWORD TN_ADMINISTRATIONWORD_IDX2) */  FRST_REGIST_PNTTM  from TN_ADMINISTRATIONWORD;

2.SELECT /*+ index_desc(TN_ADMINISTRATIONWORD TN_ADMINISTRATIONWORD_PK) */  FRST_REGIST_PNTTM  from TN_ADMINISTRATIONWORD;

 

두개의 쿼리를 실행하면 2번 쿼리는 힌트의 인덱스를 타게 되는데..  1번은 힌트의 인덱스를 타지 못하고 풀스캔을 하게 되네요..

IDX2,PK둘다 사용되는 인덱스입니다.

 

 

 

 

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

두 쿼리 모두 별도 조건절이 없으므로 전체 데이터를 모두 읽어야 합니다.

인덱스의 특징중 하나가 널값을 제외한다는 거죠.

PK 의 경우엔 Not Null 속성을 가지고 있으므로 엔덱스에 모든 레코드가 저장됩니다.

반면에 Not Null 속성이 없는 컬럼에 대한 인덱스의 경우엔 널값이 제외되어 모든 레코드를 저장할 수 없습니다.

이 경우에 인덱스를 경유한다면 모든 레코드를 가져올 수 없으므로 인덱스를 탈 수 없습니다.

컬럼을 Not Null 로 지정하거나, Where 절에 Not Null 조건을 추가해 준다면?

인덱스를 정상적으로 타겠지요.

마농(manon94)님이 2012-12-31 15:30에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39961데이타 정렬 문제 [1]
정의찬
2013-01-04
5765
39960웹접속이 넘 느려져서...
이영주
2013-01-03
5469
39959DBMS_METADATA.GET_DDL 사용방법 질문 [2]
이용길
2013-01-02
7410
39957힌트사용.... 왜 안될까요..ㅜㅜ [1]
하람
2012-12-31
5873
39956아카이브로그 삭제 관련..
임서희
2012-12-31
5803
39955SYSTEM 증가 문제 [1]
사이베이스가 싫어
2012-12-30
5074
39946한 row를 여러줄로 표시 하려면 어떻게 하나요? [1]
천재음악가
2012-12-28
6602
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다