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 40017 게시물 읽기
No. 40017
날짜비교 문의
작성자
궁금이
작성일
2013-02-20 09:15
조회수
5,446

안녕하세요!

글 제목 그대로 입니다.

date 타입의 컬럼 aa가 있다고 가정 할때

1. aa>= trunc(sysdate)

2.to_char(aa, 'yyyymmdd') = to_char(sysdate, 'yyyymmdd')

1,2 의 차이점을 알고 싶습니다.

혹시나 aa 칼럼이 index 여부에 따라서 어떻게 틀려지는지 답변 달아 주시면 감사하겠습니다.

감사합니다.

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

테이블 전체 데이터가 100만건, 하루 입력량 천건으로 가정.

1. 날짜컬럼에 인덱스 존재할때
  - 1번은 필요한 데이터만 읽음, 인덱스 스캔(천건) + 테이블랜덤엑세스(천건)
  - 2번은 전체데이터를 모두 읽음, 테이블 풀스캔 (100만건)
2. 인덱스가 없을때
  - 1번의 함수 사용횟수는 trunc 1회
  - 2번의 함수 사용횟수는 to_char 100만회 + to_char 1회

결론은.
인덱스가 있건 없건 간에 컬럼을 가공하지 말고 조건값을 가공하는 것이 좋다.

마농(manon94)님이 2013-02-20 10:34에 작성한 댓글입니다.

항상 답변 달아 주시는 마농님 감사합니다.

저도 마농님이 말씀해 주신 점과 비슷하게 생각을 하고 있습니다.

일단 현재 전체 데이터가 100만건 가량 되지는 않습니다.

1, 2 의 조회 결과 처리 시간이 당연히 1이 빠를거라 생각했는데

2의 결과가 더 빠르게 나와서 의문이 들어서 문의를 드렸습니다.

마농님의 답변 1,2 모두의 경우 데이터의 건수와 상관 없이

1의 결과가 시간이 빠르다는것을 말씀해 주시는거 같습니다.

제 예상과는 결과가 틀리게 나와서 문의 드렸습니다.

답변 감사합니다 마농님!

궁금이님이 2013-02-20 11:29에 작성한 댓글입니다. Edit

일단, 실행계획을 비교해 보세요.

마농(manon94)님이 2013-02-20 12:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40020마농님 한가지 더 질문 드려도 될까요 [4]
도와주세요
2013-02-22
5516
40019쿼리 질문입니다. 도움 부탁 드립니다. [2]
도와주세요
2013-02-21
5448
40018아카이브백업파일이.dbf인경 경우, .arc인 경우 [4]
임서희
2013-02-20
5108
40017날짜비교 문의 [3]
궁금이
2013-02-20
5446
40016설치 에러 관련 질문 드립니다
Matthew
2013-02-19
5442
40014exp로 덤프백업받을 때 [2]
임서희
2013-02-19
5227
40013간단한 쿼리 질문 [5]
질문
2013-02-19
4978
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다