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
운영게시판
최근게시물
PostgreSQL Q&A 8837 게시물 읽기
No. 8837
timestamp 사용시 index를 걸어두어도 cost 개선없는 이유?
작성자
김현진(tokssonda)
작성일
2011-08-09 11:24
조회수
8,594

테이블에서 날짜를 기준으로 데이터를 뽑아오더니 문득 timestamp로 설정해둔 컬럼을 인덱스를 걸면 좀더

빨라지겠구나 라는 생각이 들어서 index를 설정해봤는데 cost 개선이 안되서 문의 드려요.

index before )

db=# explain select count(*) from table where tm_a between '2011-01-01 00:00:00' and '2011-08-01 23:59:59';
                                                                   QUERY PLAN                                                                   
-------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=44.19..44.20 rows=1 width=0)
   ->  Seq Scan on table  (cost=0.00..41.94 rows=900 width=0)
         Filter: ((tm_a >= '2011-01-01 00:00:00'::timestamp without time zone) AND (tm_a <= '2011-08-01 23:59:59'::timestamp without time zone))
(3 rows)

index make )

db=# create index idx_tm_a on table(tm_a);
CREATE INDEX

index after ) 

                                                                   QUERY PLAN                                                                   
-------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=44.19..44.20 rows=1 width=0)
   ->  Seq Scan on table  (cost=0.00..41.94 rows=900 width=0)
         Filter: ((tm_a >= '2011-01-01 00:00:00'::timestamp without time zone) AND (tm_a <= '2011-08-01 23:59:59'::timestamp without time zone))
(3 rows)

조언 부탁 드립니다 ^ ^

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

 인덱스만 만든다고 쿼리 최적화(Query Optimizer)가 일어나지는 않습니다. 

최적화 작업의 기준은 해당 인덱스의 자료 분포 비율, 쿼리 사용 비율등이 집계되어야합니다.

즉, 위와 같이 인덱스를 처음 만들었다면, 반드시, 한 번은 

VACUUM ANALYZE tablename;

명령을 실행해서 통계자료를 정리해주어야합니다. 

 

이렇게 했음에도 불구하고, 인덱스를 사용하지 않는다면, 

서버가 시퀀스 스캔 비용이 인덱스 스캔 비용보다 적다고 판단하기 때문입니다.

 

김상기(ioseph)님이 2011-08-09 12:29에 작성한 댓글입니다.

아 답변 감사드립니다. ^ ^

 

김현진(tokssonda)님이 2011-08-09 14:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8840Vacuum과 Dump 의 동시실행 [1]
박병훈
2011-08-31
8102
8839데이터 복원 시 duplicate key value violates unique constraint 문제 해결 방안? [1]
김희승
2011-08-23
8859
8838function 생성좀 봐주세요. [1]
이기자
2011-08-11
8819
8837timestamp 사용시 index를 걸어두어도 cost 개선없는 이유? [2]
김현진
2011-08-09
8594
8836비효율적인 실행계획 [1]
지우개
2011-08-03
8797
8835Postgresql 필드 속성이 자동 변경된경우
김범영
2011-08-03
7956
8834요일 구하기 [2]
iyob
2011-08-01
9534
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다