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 39733 게시물 읽기
No. 39733
index 문의
작성자
마루아라(maruara)
작성일
2012-11-08 16:15ⓒ
2012-11-08 16:17ⓜ
조회수
5,358

테스트 서버와 운영 서버가 있는데 테이블 스키마가 똑같습니다.

쿼리를 실행하면 테스트 서버에서는 Index Range Scan이 되는데 운영 서버에서는 Index가 실행되지 않아서 문의드립니다.

일자에 Index가 걸려 있고요. 아래 쿼리처럼 월 단위로 조회를 합니다.

SELECT * FROM 테이블
  WHERE 일자 LIKE '201210%'

 데이터는 둘 다 거의 비슷하지만 테스트 서버쪽에 데이터 양이 더 적고요. 건수는 대략 300만건정도 입니다.

 

운영서버에서 아래처럼 조회조건을 IN절로 만들어서 실행하면 Index Range Scan이 실행됩니다.

SELECT * FROM 테이블
WHERE 일자 IN (SELECT '201210' || LPAD(LEVEL, 2, '0')
                                     FROM DUAL
                                    CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE('201210', 'YYYYMM')), 'DD'))

 

 

이런 경우 어떻게 원인을 찾아봐야 하는지 LIKE로 조건을 줬을 경우 해결방법이 있으면 조언 부탁드립니다.

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

 통계정보 확인해보세요.

viatoris님이 2012-11-08 16:18에 작성한 댓글입니다. Edit

ANALYZE TABLE을 하란 말씀이신지요?

SELECT TABLE_NAME
                , NUM_ROWS
                , TO_CHAR( LAST_ANALYZED, 'YYYYMMDD' )
      FROM USER_TABLES
WHERE TABLE_NAME = '테이블'

로 검색하니 운영이 더 최근에 ANALYZED 되어 있네요

다시한번 ANALYZE TABLE를 해봐야겠네요. 감사합니다.

마루아라(maruara)님이 2012-11-08 17:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39736부모테이블이 수정되면 자식테이블도 자동적으로 수정되게 하고 싶습니다. [1]
uamu
2012-11-09
5778
39735계정 권한 문의 [1]
김삼
2012-11-08
5072
39734공백오른쪽을 지우고싶은데요.. [4]
질문요
2012-11-08
5941
39733index 문의 [2]
마루아라
2012-11-08
5358
39732질문글 올립니다. merge oracle 9i [2]
서석경
2012-11-07
5258
39731오라클 컬럼값에 * 로 표시 되는 데이터들이 보여요
유니맥스
2012-11-07
4863
39730아우터 조인으로 해결이 안되는거 같아요 ;; [1]
초보자
2012-11-06
5090
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다