프로덕션 환경에 Oracle 11G R2가 있습니다.날짜 필드를 사용하여 쿼리 실행 성능 향상
나는 열이 DATE
1 개 쿼리
select ....
from FORMX
where (INF_TYP =?)
AND (STATUS IN (?, ?, ?, ?, ?, ?))
AND ((VAL_DAT>=? OR VAL_DAT IS NULL));
유형 VAL_DAT
의의 성능을 향상시키는 것을 좋아합니다. VAL_DAT
에 색인을 추가해도 눈에 띄는 효과가 없습니다.
어떻게 조정할 수 있으며 검색어를 변경하는 방법에 대한 아이디어가 있으십니까?
편집
우리는 완전히 그 테이블에 대한 150K 기록이 조건 (생산 1 년) VAL_DAT is null
레코드의 약 8 %에 해당됩니다.
'INF_TYP'및 'STATUS'의 유형은 VARCHAR2 (2 CHAR) 및 VARCHAR2 (10 CHAR)입니다.
정보가 충분하지 않습니다. 테이블의 크기 (행 수, 평균 행 공간)는 얼마나됩니까? 각 필터가 반환해야하는 행의 비율은 얼마입니까? VAL_DAT = null 인 행의 수는 얼마입니까? 인덱스의'clustering_factor'는 무엇입니까? –
@ Vincent가 말한 것과 + 조건 1과 2는 무엇입니까? 이미 다른 어떤 인덱스가 테이블에 있습니까? – StevieG
질문을 업데이트했습니다. @ Vincent Malgrat 나는이 순간에 clustering_factor의 가치를 알지 못한다. 왜냐하면 나는 지금 색인이 없다. –