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 41679 게시물 읽기
No. 41679
is not null
작성자
아벨의꿈
작성일
2019-01-08 17:09
조회수
2,970

 is not null을 걸면 인덱스가 안걸려서 쿼리속도가 4,5초나오는대 데체방이 있나요 

해결방안 부탁드립니다

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

기본적으로 인덱스는 null 에 대해서는 제대로 동작할 수 없습니다. 
컬럼의 데이터 중 대부분의 null 일 경우
not null 의 데이터를 찾을 때 
괜찮게 쓰일 수 있는 방법이 있습니다. 

문자 데이터의 경우 
where col1 > ' ' 

숫자 데이터의 경우 (코드성일 경우) 
where col1 >= 0 

이런식으로 사용할 수 있습니다. 

컬럼의 null, 데이터 분포도 등에 따라 
솔루션이 달라질 수 있습니다. 

 

 

lucky님이 2019-01-08 19:16에 작성한 댓글입니다.
이 댓글은 2019-01-08 19:22에 마지막으로 수정되었습니다. Edit

is not null 을 걸면 인덱스를 안탄다?
글쎄요? 그 반대일 텐데요?
아무 조건 없을 땐 안타다가 조건 주면 타는 경우는 있어도.
조건을 주어서 안타는 경우는 없을 듯 합니다.
조건을 줬는데도 불구하고 안타는 경우는 있을 수 있겠지만.
조건 때문에 안타는 것은 아닐 것으로 생각됩니다.

특정 키워드 만으로 튜닝하는 법은 없습니다.
전체 쿼리와 테이블에 대한 정보를 가지고 튜닝해야 합니다.
 

마농(manon94)님이 2019-01-08 19:59에 작성한 댓글입니다.

is not null 이 부정형 비교라 인덱스 스캔이 안될 겁니다. 
index full scan 으로 실행계획이 풀리는 경우가 있긴 한데 
데이터가 많다면 위의 스캔도 그렇게 효율적이지는 않을겁니다. 
잘 정리한 문서가 있어서 링크합니다. 

http://wiki.gurubee.net/pages/viewpage.action?pageId=27427980

lucky님이 2019-01-09 10:30에 작성한 댓글입니다. Edit

 not때문에 index안탈껍니다

 

부정형 조건의 경우 index 안타게 되있어요

goblin(goblinmaniac)님이 2019-01-11 16:35에 작성한 댓글입니다.

NOT 은 부정형이므로 인덱스를 안탄다? 과연 그럴까요?
예를 들면 emp 테이블에 deptno 에 인덱스가 걸려 있고,
다음과 같은 쿼리가 수행된다면? 결과는 어떻게 될까요?
1) SELECT deptno FROM emp;                           --> Table Full Scan
2) SELECT deptno FROM emp WHERE deptno IS NOT NULL;  --> Index Full Scan

마농(manon94)님이 2019-01-11 16:39에 작성한 댓글입니다.
이 댓글은 2019-01-11 16:40에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41683오라클11과 오라클 12 [2]
신승익
2019-01-23
3428
41682join의 조건보다 where 구문의 조건이 먼저 읽혀 발생하는 문제... [1]
조인씨
2019-01-22
3095
41680무료 오라클 관리툴인 DBAny 2019 버전 발표!
박희성
2019-01-12
3011
41679is not null [5]
아벨의꿈
2019-01-08
2970
41677ORACLE 접근하여 table 수정한 사람의 IP 및 이력을 조회 하려면? [2]
송영일
2019-01-07
3226
41676오라클 데이터베이스 질문드립니다.
문영모
2018-12-28
3048
41675반차(연차) 행 구분 [2]
IT재벌
2018-12-28
3782
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다