현재 100만건을 목표로 랜덤 자료를 생성하고 있습니다.
16만건 정도 생성해서 이것 저것 테스트해보니 문제가 좀 생겼습니다.
CREATE TABLE RANDOM_TEMPLATE
(
RAN_SEQ INTEGER NOT NULL,
RAN_VARIABLE CHAR(18) NOT NULL,
RANS_LAST_USE CHAR(1) DEFAULT ''
);
ALTER TABLE RANDOM_TEMPLATE ADD CONSTRAINT PK1_RANDOM_TEMPLATE UNIQUE (RAN_SEQ);
ALTER TABLE RANDOM_TEMPLATE ADD CONSTRAINT PK2_RANDOM_TEMPLATE UNIQUE (RAN_VARIABLE);
이 테이블에 자료를 생성하고 지금 집어 넣고 있는데, 이상하게도 count(*) 속도가 너무 느리다는 겁니다.
select count(ran_seq) from random_template 해도 마찬가지구요.
이상한 건 index 를 제거한 다음에 해보아도 속도가 비슷하게 나온다는 겁니다.
다시말해, index 를 걸고 select count(ran_seq) from .. 해도 속도가 안 건 거랑 별반 차이가 나지 않습니다.
하지만 select * from random_template where ran_variable = 'xxxxx' 하면 인덱스를 안 걸었을 때는 제 서버에서(펜티엄 제온 1.8G 듀얼) 약 30초, 걸었을 때는 순간입니다.
종합해 보면 인덱스 생성은 제대로 된 것 같은데, 이상하게 count(*) 명령이 늦네요.
확실하진 않지만 다른 DB 에서는 안 그랬던 것 같아서요.
해결책을 아시는 분 있으면 알려주시면 감사하겠습니다.
참고로 postgresql 버전은 7.3.2 입니다.
--- khans
|