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
운영게시판
최근게시물
Informix Q&A 2486 게시물 읽기
No. 2486
[급] 쿼리 성능 향상에 대한 질문
작성자
이승훈(kor2u)
작성일
2008-03-06 11:31
조회수
7,745

안녕하세요.
지금 쿼리 실행이 너무 늦어서 set explain on; 을 실행시켜서 아래와 같은 결과를 얻었습니다.

제가 이쪽은 초보라서 어떤 문제가 있는지 좀 알려주세요^^;;
아래 explain 설명과 함께 문제점 그리고 해결책 좀 제시해주세요 (__) 꾸벅

그럼 부탁드립니다. 고수님들..


-----------------------------------------------------------------------------------

QUERY:
------
select
        me.title
        , count(*) cnt
from
        hs_contentlog lo
        , hs_metainfo me
        , hs_contentobject ho
where
        1=1
        and ho.objectid = me.objectid
        and me.objectid = lo.objectid
group by me.title
order by cnt desc

Estimated Cost: 40989
Estimated # of Rows Returned: 1
Temporary Files Required For: Order By  Group By

  1) dbgw.lo: SEQUENTIAL SCAN

  2) dbgw.ho: INDEX PATH

    (1) Index Keys: objectid   (Key-Only)  (Serial, fragments: ALL)
        Lower Index Filter: dbgw.ho.objectid = dbgw.lo.objectid
NESTED LOOP JOIN

  3) dbgw.me: SEQUENTIAL SCAN


DYNAMIC HASH JOIN (Build Outer)
    Dynamic Hash Filters: dbgw.me.objectid = dbgw.lo.objectid

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

explain은 상대적인것이고 IDS에서 사용자가 구성한 상황에서 가장 최적의 조건을 찾아주는 것이므로 정확한 답변이 없습니다. 그러나 다음의 내용을 참조해서 index도 걸어보고 where 조건도 바꾸어 주면서 해보시다보면 쿼리가 빨라졌음을 느끼실 수 있을겁니다.

Temporary Files Required For: Order By  Group By
 order by에 의해 temp file이 필요함을 보여주는 것입니다.

dbgw.ho: INDEX PATH
 인덱스가 생성된 컬럼을 사용한 query 이므로 가장 빠른 query path라 예상할 수 있습니다.

Index Keys: objectid   (Key-Only)
 인덱스 컬럼 데이터만 스캔하면 조회 결과를 얻을 수 있으므로 데이터 페이지 스캔이 일어나지 않습니다.

Lower Index Filter
 인덱스를 통하여 여러 건의 데이터를 조회할 때, 인덱스로 처음 찾은 데이터부터 시작하여 sequential하게 조회한다. 이때 인덱스를 통하여 처음으로 찾는 데이터를 지정하는 조건이 lower index filter가 됩니다.

NESTED LOOP JOIN
 dbgw.lo 테이블의 각 행마다 조인 컬럼을 이용하여 stock테이블에서 index 스캔을 합니다.

DYNAMIC HASH JOIN
 hash 테이블을 자동적으로 생성하여 hash join을 수행한다. build outer 문장이 표시 되지 않았다면 기본적으로 두번째 테이블에 대하여 hash 테이블이 생성됩니다.


이상은 informix_selfstudy_guide의 내용을 발췌하여 쓴 내용입니다.

김선규(cbspd)님이 2008-03-11 16:02에 작성한 댓글입니다.
이 댓글은 2008-03-11 16:04에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
2489인포믹스 버전 업그레이드할때 문제점.. [1]
김기환
2008-03-13
6331
2488lvarchar 사용시 Max설정문제 [1]
초보
2008-03-12
7159
2487[TIP] embedding SQL in UNIX Script
김선규
2008-03-07
9528
2486[급] 쿼리 성능 향상에 대한 질문 [1]
이승훈
2008-03-06
7745
2485권한에 대해... [1]
최재환
2008-03-06
7229
2484instance 띄우기.... [2]
초보
2008-03-05
6270
2481db명으로 접속이 아닌 instance명으로 접속할려면...esql [4]
초보
2008-03-04
7282
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다