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 6334 게시물 읽기
No. 6334
select 시 order by 문제
작성자
곽여송(kwak0329)
작성일
2005-09-23 15:38ⓒ
2005-09-23 15:43ⓜ
조회수
1,730

[쿼리1]
select * from log where _date >= '20050901' and _date <= '20050923' and to_addr ~* 'xxxxx' order by _date limit 80 offset 0
[실행내역]
Limit (cost=0.00..4.31 rows=1 width=257) (actual time=394.491..395.844 rows=80 loops=1)
-> Index Scan using log_idx_4 on log (cost=0.00..4.31 rows=1 width=257) (actual time=394.485..395.733 rows=80 loops=1)
Index Cond: (((_date)::text >= '20050901'::text) AND ((_date)::text <= '20050923'::text))
Filter: ((to_addr)::text ~* 'xxxxx'::text)
Total runtime: 395.972 ms
------------------------------------------------------------------------------------------
[쿼리2]
select * from log where _date >= '20050901' and _date <= '20050923' and to_addr ~* 'xxxxx' order by _date,time limit 80 offset 0
[실행내역]
Limit (cost=4.32..4.33 rows=1 width=257) (actual time=259634.412..259634.563 rows=80 loops=1)
-> Sort (cost=4.32..4.33 rows=1 width=257) (actual time=259634.406..259634.458 rows=80 loops=1)
Sort Key: _date, "time"
-> Index Scan using log_idx_4 on log (cost=0.00..4.31 rows=1 width=257) (actual time=387.380..259552.765 rows=7473 loops=1)
Index Cond: (((_date)::text >= '20050901'::text) AND ((_date)::text <= '20050923'::text))
Filter: ((to_addr)::text ~* 'xxxxx'::text)
Total runtime: 259649.920 ms

쿼리1/쿼리2하고 다른점은 order by 에서 쿼리1은 _date만 있고, 쿼리2는 _date,time 이 있습니다.

어쩔수 없이 _date,time을 해야 하는지라.. 고수님들 답변 부탁드립니다.

수고하세요

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

log_idx_4가 _date 컬럼의 인덱스 같네요. 이 인덱스를 _date와 time의 복합 인덱스로 만들어보세요. 위의 쿼리는 log_idx_4만으로 소트가 해결되지만 아래 쿼리는 log_idx_4로 _date 조건을 처리한 다음에 table row를 access해서 time 정보를 읽어오고 이것을 다시 sort해야 하므로 더 일이 늦게 처리되는 것 같습니다.

그리고 vacuum을 하셨나요? table data access에 비용이 생각 이상으로 많이 드는 것 같네요. 가비지 자료가 많은 것 아닌지 의심해봅니다.

박성철(gyumee)님이 2005-09-23 19:04에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6338schema_path초기화 하려면? [1]
이세진
2005-09-26
1804
6336Version 7.3.4에서는 Function 안에서 to_char(XXX,'')식의 형변환을 어떻게 하나요? [1]
조성배
2005-09-26
2223
6335이 함수좀 봐주세요... 실행하다 에러가 나네요 [1]
조성배
2005-09-23
1817
6334select 시 order by 문제 [1]
곽여송
2005-09-23
1730
6333시간 함수에 관련해서 질문 드려요 [1]
알려주세요
2005-09-23
1933
6332limit 쓸때 0,10 이 안먹히는 이유는? [2]
2005-09-21
2179
6331$pg_close($connect); 의 쓰임새 [3]
초보
2005-09-21
1619
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다